jalvesaq / zotcite

Neovim plugin for integration with Zotero
GNU General Public License v3.0
174 stars 15 forks source link
neovim-plugin zotero

Zotcite

[!Note] Users of Vim and Neovim < 0.10 have to install the branch "vim".

Zotcite is a Neovim plugin that provides integration with Zotero. With zotcite you can:

Zotcite is being developed and tested on Linux and should work flawlessly on other Unix systems, such as Mac OS X. It may require additional configuration on Windows.

Installation

Requirements:

Depending on your system, you may have to install python modules in an virtual environment and maybe also system-wide.

Zotcite can be installed as any Neovim plugin, and it depends on telescope.nvim, and nvim-treesitter as well as tree-sitter parsers for markdown, markdown_inline, and yaml. Optionally, you can also use cmp-zotcite, for auto-completing the citations keys. Below is an example of how to install zotcite with lazy.nvim:

    {
        "jalvesaq/zotcite",
        dependencies = {
            "nvim-treesitter/nvim-treesitter",
            "nvim-telescope/telescope.nvim",
        },
        config = function ()
            require("zotcite").setup({
                -- your options here (see doc/zotcite.txt)
            })
        end
    },

    {
        "nvim-treesitter/nvim-treesitter",
        run = ":TSUpdate",
        config = function ()
            require("nvim-treesitter.configs").setup({
                sync_install = true,
                ensure_installed = {
                    "html",
                    "latex",
                    "markdown",
                    "markdown_inline",
                    "yaml",
                },
                highlight = {
                    enable = true,
                },
                indent = {
                    enable = true,
                },
            })
            vim.o.foldmethod = "expr"
            vim.o.foldexpr = "nvim_treesitter#foldexpr()"
            vim.o.foldenable = false
        end
    },

Note: you don't need to lazy load zotcite because it already lazy loads its modules only for the supported file types, and you do need to call zotcite's setup function.

The Python module zotero does not import the vim module. Hence, its code could easily be adapted to other text editors or as a language server for markdown and quarto.

Usage

Please, read the plugin's documentation for further instructions.

Acknowledgment

Zotcite's Python code was based on the citation.vim project.