Zotero Vim Plus — Vim-style keybindings for the Zotero PDF reader ( adapted from zotero-vim)
Hi everyone,
I'd like to share Zotero Vim Plus, a plugin that brings Vim-style keybindings to the Zotero PDF reader — navigate, scroll, annotate, and copy text without touching the mouse.
About this fork
This plugin is a maintained fork of the original Zotero Vim by Alex Fink, available at https://codeberg.org/finktank/zotero-vim. Many thanks to the original author for the solid foundation — this fork builds on that work and adds some quality-of-life improvements on top.
Features
- Normal mode — scroll, page-navigate, jump between annotations, copy/delete annotations, reposition the viewport (zt/zz/zb), and pan horizontally when zoomed in
- Cursor mode — move a text caret like browser Vim plugins without selecting text (hjkl, w/W, b/B, 0/$, count prefixes)
- Visual mode — build selections by line, character, word, sentence, or paragraph; create coloured highlights or notes; copy to clipboard
- Insert mode — pass keys through to Zotero when needed, e.g. typing in form fields
- Fully remappable — every binding can be customised from the Preferences panel, with a Chinese/English UI that follows Zotero's interface language
- No shortcut collisions — keys consumed by vim are intercepted before Zotero's own key handling, so l (next page) won't trigger Read Aloud, and h/s/Ctrl+F won't toggle tools you didn't ask for
- Text post-processing — copied text is normalised (Unicode ligatures, PDF line-breaks)
Some additions over the original
Compared to the original, this fork adds a few things I found useful while reading papers:
- Snapshot & EPUB support — scrolling, search, gg/G, and viewport positioning work in web snapshots and EPUBs too
- Vim-style note editing — minimal vim layer (w/e/b, dd, yy, p, u/Ctrl+r, …) in Zotero note editors
- Reader split view — split the reader horizontally or vertically and navigate between panes with Ctrl+h/j/k/l
- Fuzzy & tab pickers — quickly jump to items, collections, or open tabs (ff, fb, bj)
- Outline explorer & notes layout overlay — keyboard-driven outline navigation and note browsing without leaving the keyboard
- Library tree navigation — vim keys (j/k, gg/G, za/zo/zc, …) in Zotero's left pane
- Smooth scrolling options — tuneable speed/acceleration/deceleration for hold-based scrolling
Nothing revolutionary — just, I hope, a few small conveniences for keyboard-first readers.
Installation
1. Download the .xpi from the releases page: https://github.com/ZorroStardust/zotero-vim-plus/releases/latest
2. In Zotero, go to Tools → Plugins → click the gear icon (⚙) → Install Plugin From File… → select the .xpi
3. Restart Zotero when prompted
The plugin checks for updates via an updates.json manifest, so future releases install automatically (no manual re-install needed).
Compatibility
- Zotero 7, 8, and 9 (bootstrap API)
- macOS, Linux, Windows
Feedback
Bug reports and feature requests are welcome on GitHub Issues: https://github.com/ZorroStardust/zotero-vim-plus/issues
The plugin is open source (AGPL-3.0): https://github.com/ZorroStardust/zotero-vim-plus
Hope it's useful for someone. Happy reading!
I'd like to share Zotero Vim Plus, a plugin that brings Vim-style keybindings to the Zotero PDF reader — navigate, scroll, annotate, and copy text without touching the mouse.
About this fork
This plugin is a maintained fork of the original Zotero Vim by Alex Fink, available at https://codeberg.org/finktank/zotero-vim. Many thanks to the original author for the solid foundation — this fork builds on that work and adds some quality-of-life improvements on top.
Features
- Normal mode — scroll, page-navigate, jump between annotations, copy/delete annotations, reposition the viewport (zt/zz/zb), and pan horizontally when zoomed in
- Cursor mode — move a text caret like browser Vim plugins without selecting text (hjkl, w/W, b/B, 0/$, count prefixes)
- Visual mode — build selections by line, character, word, sentence, or paragraph; create coloured highlights or notes; copy to clipboard
- Insert mode — pass keys through to Zotero when needed, e.g. typing in form fields
- Fully remappable — every binding can be customised from the Preferences panel, with a Chinese/English UI that follows Zotero's interface language
- No shortcut collisions — keys consumed by vim are intercepted before Zotero's own key handling, so l (next page) won't trigger Read Aloud, and h/s/Ctrl+F won't toggle tools you didn't ask for
- Text post-processing — copied text is normalised (Unicode ligatures, PDF line-breaks)
Some additions over the original
Compared to the original, this fork adds a few things I found useful while reading papers:
- Snapshot & EPUB support — scrolling, search, gg/G, and viewport positioning work in web snapshots and EPUBs too
- Vim-style note editing — minimal vim layer (w/e/b, dd, yy, p, u/Ctrl+r, …) in Zotero note editors
- Reader split view — split the reader horizontally or vertically and navigate between panes with Ctrl+h/j/k/l
- Fuzzy & tab pickers — quickly jump to items, collections, or open tabs (ff, fb, bj)
- Outline explorer & notes layout overlay — keyboard-driven outline navigation and note browsing without leaving the keyboard
- Library tree navigation — vim keys (j/k, gg/G, za/zo/zc, …) in Zotero's left pane
- Smooth scrolling options — tuneable speed/acceleration/deceleration for hold-based scrolling
Nothing revolutionary — just, I hope, a few small conveniences for keyboard-first readers.
Installation
1. Download the .xpi from the releases page: https://github.com/ZorroStardust/zotero-vim-plus/releases/latest
2. In Zotero, go to Tools → Plugins → click the gear icon (⚙) → Install Plugin From File… → select the .xpi
3. Restart Zotero when prompted
The plugin checks for updates via an updates.json manifest, so future releases install automatically (no manual re-install needed).
Compatibility
- Zotero 7, 8, and 9 (bootstrap API)
- macOS, Linux, Windows
Feedback
Bug reports and feature requests are welcome on GitHub Issues: https://github.com/ZorroStardust/zotero-vim-plus/issues
The plugin is open source (AGPL-3.0): https://github.com/ZorroStardust/zotero-vim-plus
Hope it's useful for someone. Happy reading!
Upgrade Storage