obsidian-switcher-plus
obsidian-switcher-plus copied to clipboard
Enhanced Quick Switcher plugin for Obsidian.md
Quick Switcher++ for Obsidian
Find what you're looking for faster, using Quick Switcher++. An Obsidian.md plugin that extends the functionality of the builtin "Quick Switcher". What's new?
Features
- Find files by headings instead of filename
- Configuration
- Navigate to symbols (Headings, Hashtags, Links, Embeddings) in your notes
- Configuration
- Navigate between open editors, and side panels
- Configuration
- Switch between configured Workspaces quickly
- Configuration
- Navigate between your Starred notes
- Configuration
- Run commands
- Configuration
- Navigate to related items
- Configuration
- General Settings
- Global Commands for Hotkeys/Shortcuts
Demo
Search Headings:
Launch Switcher++ using a shortcut, trigger Headings mode using the default # command, then enter the search text. Notice, different heading level matches are returned, along with Alias, Unresolved and regular filename matches.

Symbol Navigation:
Launch Switcher++ using a shortcut, filter all files to find the Format your notes file, then trigger the symbol command (default @) to open the file directly to the External links section.

Editor Navigation:
Launch Switcher++ directly into editor mode using a shortcut, filter the currently open editors to find the Format your notes editor and make it active. Then use Switcher++ again to open the backlinks side panel.

Search headings instead of filename
Find the file you're looking for by searching through the headings contained in the file, instead of only searching the filename. This mode can be configured to search a) strictly through only the first H1 header, fallback to filename search if there's no match with the H1, b) through all headers, and c) respect the builtin Quick Switcher settings Show existing only, Show attachments, and Show all file types. By default, this mode will display the first top 50 results.

Search headings configuration
| Setting | Description | Default |
|---|---|---|
| Headings list mode trigger | Character that will trigger headings list mode in the switcher. | # |
| Show headings only | Enabled: strictly search through only the headings contained in the file. Note: this setting overrides the "Show existing only", and "Search filenames" settings. Disabled: fallback to searching against the filename when there is not a match in the first H1 contained in the file. This will also allow searching through filenames, Aliases, and Unresolved links to be enabled. |
disabled |
| Search all headings | Enabled: search through all headings contained in the file. Disabled: only search through the first H1 in each file. |
enabled |
| Search filenames | Enabled: search and show suggestions for filenames Disabled: Don't search through filenames (except for fallback searches) |
disabled |
| Exclude folders | List of folder path regex that will be used to exclude folders and their sub-directories from suggestion search. One per line. | None |
| Hide Obsidian "Excluded files" | Enabled, suggestions for files that are in Obsidian's "Options > Files & Links > Excluded files" list will not be displayed. Disabled, suggestions for those files will be displayed but downranked. | disabled |
Symbol Navigation (Headings, Hashtags, Links, Embeddings)
View, filter, and navigate to any symbol (Headings, Hashtags, Links, Embedding) in a file directly from the Quick Switcher.
For the currently open and focused pane:
Symbols can be viewed directly by using the Open in Symbol Mode global hotkey (see below).
Embedded Symbol search (for any other file, open or not):
Symbols can be viewed by opening Quick Switcher++, typing some characters to filter and/or using the arrow keys to select (highlight) the file of interest. Then, once the file of interest is selected/highlighted, type the @ (default) character to view the symbols for the file of interest.

Symbol Navigation Configuration
| Setting | Description | Default |
|---|---|---|
| Symbol list mode trigger | Character that will trigger symbol list mode in the switcher. | @ |
| List symbols as indented outline | Enabled: symbols will be displayed in the (line) order they appear in the source text, indented under any preceding heading. Disabled: symbols will be grouped by type: Headings, Tags, Links, Embeds. |
enabled |
| Open Symbols in new pane | Enabled: always open a new pane when navigating to Symbols. Disabled: navigate in an already open pane (if one exists). |
disabled |
| Open Symbols in active pane on mobile devices | Enabled: navigate to the target file and symbol in the active editor pane, in other words, don't create a new editor pane. Disabled: open a new pane when navigating to Symbols, even on mobile devices. |
disabled |
| Auto-select nearest heading | Enabled: in an unfiltered symbol list, select the closest preceding Heading to the current cursor position. Disabled: the first symbol in the list is selected. |
enabled |
| Show Headings | Enabled: display Headings in the symbol list. Disabled: don't show Headings in the symbol list |
enabled |
| Show Tags | Enabled: display Tags in the symbol list. Disabled: don't show Tags in the symbol list |
enabled |
| Show Embeds | Enabled: display Embeds in the symbol list. Disabled: don't show Embeds in the symbol list |
enabled |
| Show Links | Enabled: display Links in the symbol list. When enabled, the following settings become visible to further refine which types of links are displayed, Links to headings, Links to blocks.Disabled: don't show Links in the symbol list |
enabled |
| Links to headings | Enabled: display links that point to a header, e.g [[file#header]]. This setting is only visible when Show Links is enabled.Disabled: don't show Links to headers |
enabled |
| Links to blocks | Enabled: display links that point to a block, e.g [[file#^blockid]]. This setting is only visible when Show Links is enabled.Disabled: don't show Links to blocks |
enabled |
Navigate between open editors
View, and filter all of the currently open editors, and navigate to any of them from Quick Switcher++ by using the default edt command. Note: Symbol search works in this mode as well, so you can use both modes together e.g. edt @. The default builtin Quick Switcher behavior is used when no commands are present.
Editors/views from the side panels can be configured to be displayed in the list as well. For example, you could use this to navigate to the backlinks, file explorer, tag pane, etc.. system views/panes directly from the Quick Switcher.

Editor Navigation Configuration
| Setting | Description | Default |
|---|---|---|
| Editor list mode trigger | Character that will trigger editor list mode in the switcher. | edt |
| Include side panel views | Show the specified view types from the side panels in the switcher. Add one view type per line. Leave empty to never display side panel editors in the switcher. | backlinkimagemarkdownpdf |
Switch Workspaces
View, filter, and switch between configured Workspaces quickly using the default + command.
Note: the built-in system Workspaces plugin must be enabled for this mode to work.
Workspace configuration
| Setting | Description | Default |
|---|---|---|
| Workspace list mode trigger | Character that will trigger workspace list mode in the switcher. | + |
Navigate Starred notes
View, filter, and switch between Starred notes quickly using the default ' command.
Note: the built-in system Starred Notes plugin must be enabled for this mode to work.
Starred configuration
| Setting | Description | Default |
|---|---|---|
| Starred list mode trigger | Character that will trigger starred list mode in the switcher. | ' |
Run Commands
View, search, and run Obsidian commands quickly using the default > command.
Command configuration
| Setting | Description | Default |
|---|---|---|
| Command list mode trigger | Character that will trigger command list mode in the switcher. | > |
Related Items
View, filter, and navigate to files that are "related" to the selected file. Currently, related items are files located in the same folder as the selected file.
For the currently open and focused pane:
Related items can be viewed directly by using the Open in Related Items Mode global hotkey (see below).
Embedded related items search (for any other file, open or not):
Related Items can be viewed by opening Quick Switcher++, typing some characters to filter and/or using the arrow keys to select (highlight) the file of interest. Then, once the file of interest is selected/highlighted, type the ~ (default) character to view the related items for the file of interest.
Related Items Configuration
| Setting | Description | Default |
|---|---|---|
| Related items list mode trigger | Character that will trigger related items list mode in the switcher. | ~ |
| Exclude open files | Enabled: related files which are already open in an editor will not be displayed in the list. Disabled: All related files will be displayed in the list. | disabled |
General Settings
| Setting | Description | Default |
|---|---|---|
| Default to open in new pane | Enabled: navigating to un-opened files will open a new editor pane whenever possible (as if cmd/ctrl were held). When the file is already open, the existing pane will be activated. This overrides all other pane settings. | enabled |
| Preferred file path display format | The preferred way to display file paths in suggestions. Note: by default, path information will not be displayed for files at the root of the vault. | Parent folder & filename |
Global Commands for Hotkeys
The following Global Commands are registered by the plugin, which can be used for global hotkeys/shortcuts.
Quick Switcher++: OpenQuick Switcher++: Open in Editor ModeQuick Switcher++: Open in Symbol ModeQuick Switcher++: Open in Workspaces ModeQuick Switcher++: Open in Headings ModeQuick Switcher++: Open in Starred ModeQuick Switcher++: Open in Commands ModeQuick Switcher++: Open in Related Items Mode
Installation
From Obsidian
From Obsidian v0.9.10, this plugin can be activated from within Obsidian:
- Open Settings > Third-party plugin
- Make sure Safe mode is off
- Click Browse community plugins
- Search for "Quick Switcher++"
- Click the "Install" button
- Once installed, close the community plugins window
- Under the "Installed plugins" section, enable Quick Switcher++
From Github
- Download the Latest release distribution
- Extract the the contents of the distribution zip file to your vault's plugins folder:
<vault>/.obsidian/plugins/Note: On MacOs the.obsidianfolder may be hidden by default. - Reload Obsidian
- Open Settings, third-party plugins, make sure safe mode is off and enable "Quick Switcher++" from there.
Contributing
Contributions via bug fixes, documentation, and general improvements are always welcome. For more major feature work, please create a Discussion about the feature idea, or reach out to me so we can judge feasibility and how best to implement it.
A primary design goal for Switcher++ is to be a "drop in" replacement for the built-in system Switcher. Such that, a user can simply replace the built-in system Switcher with Switcher++ and have all the built-in functionality continue to work as expected.
Getting started
- Clone the repository
cdinto the repository directory- Run
npm install - Run
npm run devthis will monitor for any source file changes and run unit tests, linter, and build the plugin whenever a change is detected. - Happy coding! 😀
Change Log
- See the releases page for changes in each release.
Notes
- This plugin very much experimental at the moment, use it at your own risk. It's only been tested on MacOS, other platforms may have issues.
Giving Thanks 🙏
If this project has been useful to you, give thanks to support its continued development and maintenance. Any contribution towards a cup of ☕ or 🍺 is greatly appreciated. Thank you!