zotero-vim plugin - a vim/keyboard-driven approach to using Zotero

edited March 12, 2026
I've long desired to have a more keyboard-driven experience of using/reading in Zotero. Specifically, as a Vim user, I love having a familiar, modal interface.

In case anyone is interested in using it, here's what I created and am using now: https://codeberg.org/finktank/zotero-vim

Works great for me in Zotero 8. I'm using it actively in my reading and making changes. I'm open to hearing about things to add/fix (can't promise I'll do anything about them, but you are welcome to let me know), but am mostly just posting here in case anyone has been looking for something similar and wants to try it out - with no guarantees!
  • omg what a perfect timing, I was just looking for something like this <3

    just checked it out and threw a PR your way
  • Thanks @maxbrydak! I incorporated your update - it was great thank you. Look forward to hearing how it works. I've been waiting to read this way for years. What kind of reading do you do in Zotero?
  • This is amazing!! Now please M'Lord, I beg you, let me take notes in full Vim mode too.
  • Amazing !!!!! I really needed this.
  • I’ve been looking forward to this for years, thanks!!!!
    Next on my wishlist: a fuzzy picker for the TOC!
  • Great work, thanks a lot. I'm not sure if Zotero announces the citation links it finds, but it would be nice to have a follow link function too.
  • Love the idea! Does it work fine in Zotero 9?
  • It does work in Zotero 9 now!

    Fuzzy picker and follow link will be on the agenda next. Love those ideas, thank you.
  • FYI - follow link is implemented in the newest release. "f" like in tridactyl opens tooltips with all the link options.

    Fuzzy picker next for @SGGbond.
  • OK @SGGbond - there's a fuzzy picker now too! It works across the "main" and the "PDF" reader with a key that defaults to
  • @alexanderjfink, thank you for being so productive. I’m already actively using it, and it’s been a great improvement to my workflow.
  • Awesome! Please continue to leave notes here or on Codeberg with other ideas about what to add next.
  • edited 6 days ago
    Thanks for the plugin! I'm trying to understand how everything works. How can I select a single word within a phrase in visual mode? For example, I want to highlight the word "Zotero" in the phrase, "I love Zotero; it's wonderful!" I can use the "v" key to place the selection cursor at the beginning of the phrase, but how can I select only the word "Zotero"?

    I suppose that I need to use "Open find bar and search for selection (#)" but I can't trigger it with my configuration (AZERTY French keyboard).
  • Hi @Skelbti - the plugin does not currently support that level of granularity, you can either select by word from the beginning or end of a sentence. I don't tend to use that level of granularity in my reading, so didn't think to design for it.

    Trying to brainstorm: I suppose "v" could drop the cursor and highlight by default (for ease), but if one pressed another key, could turn highlighting off to jump the cursor before turning highlights back on.

    Any other ideas to make that workflow functional for you?
  • Perhaps a key to toggle highlighting in Visual mode is the way to implement this kind of granularity.

    Another question: Do you know why, most of the time, hints don't detect sentences, only lines? Perhaps it has to do with how different PDFs are formatted.
  • @Skelbti - regarding your second question, it does its best to get sentences, but PDFs seem to have weird formatting. I've encountered the issue you describe in some PDFs. However, in many PDFs, it does detect by sentence.

    I will look into adding highlight toggling to the "v" commands.
  • Update for all - Leader key ( by default) is now accessible and settable. I also implemented Zotero Split Vertical/Horizontal features and Marks (local and global).
  • Hi @Skelbti - OK, your feature is implemented! Shift+v for 'cursor mode', which uses a cursor without highlights to navigate the text, standard motions apply. Pressing "v" from within cursor mode enters highlight mode.

    I also implemented counts for motions in visual/cursor mode (e.g. 10j, 3k, 5w).

    Give it a test and lemme know how it works!
Sign In or Register to comment.