# preservim/tagbar

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/preservim-tagbar).**

6,222 stars · 478 forks · Vim Script · NOASSERTION

## Links

- GitHub: https://github.com/preservim/tagbar
- Homepage: https://preservim.github.io/tagbar
- awesome-repositories: https://awesome-repositories.com/repository/preservim-tagbar.md

## Topics

`exuberant-ctags` `linux` `macos` `neovim` `tagbar` `vim` `vim-plugins` `windows`

## Description

Tagbar is a Vim plugin that displays a resizable sidebar of code tags parsed by Exuberant Ctags, organized by scope, with cursor-linked highlighting and key-mapped jumps to definitions. It provides a hierarchical view of code elements like functions and classes from the current file, enabling navigation and structural overview directly within the editor.

The plugin integrates with Exuberant Ctags to parse source files and extract tag definitions, then organizes those symbols into a tree structure based on their enclosing scope, such as class or function boundaries. It features real-time file parsing that triggers tag regeneration automatically when the current buffer is saved or its content changes, and maps keyboard shortcuts to jump from a tag entry to its definition location in the source file.

Tagbar renders the tag hierarchy in a separate, resizable vertical window alongside the main editing buffer, and scrolls the tag window to highlight the symbol corresponding to the cursor position in the main buffer. This allows browsing a file's tags grouped by their scope to understand its internal structure and navigate between sections.

## Tags

### Development Tools & Productivity

- [Vim Plugins](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins.md) — A Vim plugin that presents a hierarchical view of code elements like functions and classes from the current file.
- [Code Navigation Utilities](https://awesome-repositories.com/f/development-tools-productivity/code-navigation-utilities.md) — Navigates source code by jumping to tags organized by scope and hierarchy.
- [Cursor Navigation](https://awesome-repositories.com/f/development-tools-productivity/cursor-navigation.md) — Scrolls the tag window to highlight the symbol at the cursor position in the main buffer.
- [Tag-Based Source Navigators](https://awesome-repositories.com/f/development-tools-productivity/structural-code-navigation/tag-based-source-navigators.md) — Browses source code structure by showing tags grouped by their enclosing scope.
- [Scope-Based Code Exploration](https://awesome-repositories.com/f/development-tools-productivity/symbol-indexing/symbol-browsing-scope-control/scope-based-code-exploration.md) — Explores code by scope to understand class, function, and variable relationships.
- [Scope-Based Symbol Browsing](https://awesome-repositories.com/f/development-tools-productivity/symbol-indexing/symbol-browsing-scope-control/scope-based-symbol-browsing.md) — Browses tags grouped by their scope to reveal the hierarchical organization of the current file. ([source](https://preservim.github.io/tagbar))
- [Exuberant Ctags Parsers](https://awesome-repositories.com/f/development-tools-productivity/tag-file-parsing/exuberant-ctags-parsers.md) — Relies on the external Exuberant Ctags tool to parse source files and extract tag definitions.
- [Ctags Integration Plugins](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins/ctags-integration-plugins.md) — Leverages ctags to parse and display tag information within the Vim editor.
- [Tag Browser Plugins](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins/tag-browser-plugins.md) — Displays a file's tags in a sidebar window, organized by scope for navigation and structural overview.

### Part of an Awesome List

- [Structural Code Navigators](https://awesome-repositories.com/f/awesome-lists/devtools/structural-code-navigators.md) — Browses a file's tags organized by scope to understand its internal structure and navigate between sections. ([source](https://cdn.jsdelivr.net/gh/preservim/tagbar@master/README.md))

### Content Management & Publishing

- [Scope-Based Tag Hierarchies](https://awesome-repositories.com/f/content-management-publishing/metadata-tagging/virtual-tag-hierarchies/tag-grouping/scope-based-tag-hierarchies.md) — Organizes code symbols into a tree structure based on their enclosing scope, such as class or function boundaries.

### Programming Languages & Runtimes

- [Tag Jump Mappings](https://awesome-repositories.com/f/programming-languages-runtimes/input-key-mappings/configurable-key-to-command-mappings/tag-jump-mappings.md) — Maps keyboard shortcuts to jump from a tag entry to its definition location in the source file.

### Software Engineering & Architecture

- [Buffer Change Triggers](https://awesome-repositories.com/f/software-engineering-architecture/human-in-the-loop-workflows/real-time-change-tracking/buffer-change-triggers.md) — Triggers tag regeneration automatically when the current buffer is saved or its content changes.
- [Sidebar Viewports](https://awesome-repositories.com/f/software-engineering-architecture/item-visibility-control/viewport-based-renderers/multi-viewport-renderers/sidebar-viewports.md) — Displays the tag hierarchy in a separate, resizable vertical window alongside the main editing buffer.
- [Source File Organization](https://awesome-repositories.com/f/software-engineering-architecture/source-file-organization.md) — Understands how a file's components are arranged through tag-based overview.

### User Interface & Experience

- [Tag-Based Structure Views](https://awesome-repositories.com/f/user-interface-experience/component-architectures/single-file-components/file-structure-constraints/tag-based-structure-views.md) — Views a file's internal structure through a sidebar of ordered tags.
