README file from
GithubNavigate to Neighbouring Files
This Obsidian Plugin adds navigational commands that let you quickly navigate to neighbouring files in your vault.
Use Case
- Navigate from one weekly note to another (e.g.,
2023-W17→2023-W18) - Move between daily notes (e.g.,
2023-05-31→2023-06-01) - Browse sequentially numbered notes (e.g.,
A4→A5) - Navigate through project files in a folder
obsidian-neighbouring-files.webm
Commands
Default Commands:
- Navigate to next file
- Navigate to prev file
Commands:
- Navigate to next file (alphabetical)
- Navigate to prev file (alphabetical)
- Navigate to older file (creation timestamp)
- Navigate to newer file (creation timestamp)
- Navigate to older file (modified timestamp)
- Navigate to newer file (modified timestamp)
- Folder up
- Folder down
- Next folder
- Prev folder
Supported Sorting Modes:
- Alphabetical: Ordered by file names.
- By Modification Timestamp: Based on the file modification date.
- By Creation Timestamp: Based on the file creation date.
Configuration
Default Sort Order
The default command uses the same sort order as the File explorer. You can configure a fallback sort order in the plugin settings.
Included File Types
By default, navigation is restricted to markdown files. In the settings you can enable support for other file types:
- Limit to Markdown files only
- Include all file types
- Specify additional file extensions to include
Loop Notes in Folder
- When disabled: Navigation stops at the beginning/end of the current folder.
- When enabled: Navigation loops back to the first/last note in the same folder.
Continue Across Folders
- When disabled: Navigation stays within the current folder.
- When enabled: Reaching a folder boundary continues navigation into adjacent folders.
Configure Obsidian Hotkeys
In Obsidian, open Settings -> Hotkeys, search for neighbouring-files, and assign keys to the command IDs you want:
neighbouring-files:nextneighbouring-files:prevneighbouring-files:next-alphabeticalneighbouring-files:prev-alphabeticalneighbouring-files:older-createdneighbouring-files:newer-createdneighbouring-files:older-modifiedneighbouring-files:newer-modifiedneighbouring-files:folder-upneighbouring-files:folder-downneighbouring-files:folder-nextneighbouring-files:folder-prev
Configure VIMRC keybindings
Instead of configuring obsidian hotkeys to trigger the navigation commands,
you can also use the obsidian-vimrc-support plugin to map more useful hotkeys such as gn or gp
(Caveat: This only works when the editor mode is on).
Example .obsidian.vimrc.
" define navigation commands
exmap next_file obcommand neighbouring-files:next
exmap prev_file obcommand neighbouring-files:prev
exmap next_file_alphabetical obcommand neighbouring-files:next-alphabetical
exmap prev_file_alphabetical obcommand neighbouring-files:prev-alphabetical
exmap older_file_created obcommand neighbouring-files:older-created
exmap newer_file_created obcommand neighbouring-files:newer-created
exmap older_file_modified obcommand neighbouring-files:older-modified
exmap newer_file_modified obcommand neighbouring-files:newer-modified
exmap folder_up obcommand neighbouring-files:folder-up
exmap folder_down obcommand neighbouring-files:folder-down
exmap folder_next obcommand neighbouring-files:folder-next
exmap folder_prev obcommand neighbouring-files:folder-prev
" add navigation mappings
nmap gn :next_file<cr>
nmap gp :prev_file<cr>
nmap fu :folder_up<cr>
nmap fd :folder_down<cr>
nmap fn :folder_next<cr>
nmap fp :folder_prev<cr>
Releasing
- Add a changeset for user-facing changes:
make changeset - Publish with the Makefile release target:
make release
make release runs Changesets versioning, creates the release commit/tag, and pushes tags to trigger the GitHub release workflow.
License
This project is licensed under MIT License.