Search the DBLP computer-science bibliography without leaving Neovim, and insert BibTeX entries directly into your buffer.
demo.mp4
- 🔍 Query DBLP from Neovim
- ⚡️ Select matching results in a Telescope picker with fuzzy filtering
- 📋 Press
<CR>to fetch and insert the selected entry's BibTeX - 🌐 Configurable API endpoint — point at any DBLP mirror or instance
- Neovim ≥ 0.8
- nvim-lua/plenary.nvim
- nvim-telescope/telescope.nvim
Using lazy.nvim:
{
"leon-richardt/nvim-dblp",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
},
opts = {},
}| Command | Description |
|---|---|
:DBLPSearch {query} |
Search DBLP for {query} and open the picker |
:DBLPSearch |
Open a prompt to enter the query, then open the picker |
:DBLPSearchDOI {doi} |
Look up a DOI on DBLP and insert its BibTeX |
:DBLPSearchDOI |
Open a prompt to enter the DOI, then fetch and insert |
nvim-dblp ships <Plug> mappings but does not bind any keys by default:
vim.keymap.set("n", "<leader>db", "<Plug>(dblp-search)")
vim.keymap.set("n", "<leader>dd", "<Plug>(dblp-search-doi)")Search by keywords:
- Run
:DBLPSearch computing machinery and intelligence(or leave the argument out to be prompted). - A Telescope picker opens with fetched results.
- Type to fuzzy-filter within the results; or escape to normal mode and use
j/kto navigate. - Press
<CR>— the BibTeX entry is fetched and inserted after the cursor.
Search by DOI:
- Run
:DBLPSearchDOI 10.1093/MIND/LIX.236.433(or leave the argument out to be prompted). - The BibTeX entry is fetched from DBLP and inserted after the cursor. If DBLP has no record for the DOI, a notification is shown.
require("dblp").setup({
-- BibTeX format: 0 = condensed, 1 = standard, 2 = with crossref
bibtex_format = 1,
-- Maximum number of results to fetch per query
results_count = 50,
-- DBLP search API endpoint (change to use a mirror)
search_url = "https://dblp.org/search/publ/api",
})This plugin was pretty heavily vibecoded with Claude Code.