Skip to content

leon-richardt/nvim-dblp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 nvim-dblp

Search the DBLP computer-science bibliography without leaving Neovim, and insert BibTeX entries directly into your buffer.

demo.mp4

✨ Features

  • 🔍 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

⚡️ Requirements

📦 Installation

Using lazy.nvim:

{
  "leon-richardt/nvim-dblp",
  dependencies = {
    "nvim-lua/plenary.nvim",
    "nvim-telescope/telescope.nvim",
  },
  opts = {},
}

🚀 Usage

Commands

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

Mappings

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)")

Workflow

Search by keywords:

  1. Run :DBLPSearch computing machinery and intelligence (or leave the argument out to be prompted).
  2. A Telescope picker opens with fetched results.
  3. Type to fuzzy-filter within the results; or escape to normal mode and use j/k to navigate.
  4. Press <CR> — the BibTeX entry is fetched and inserted after the cursor.

Search by DOI:

  1. Run :DBLPSearchDOI 10.1093/MIND/LIX.236.433 (or leave the argument out to be prompted).
  2. The BibTeX entry is fetched from DBLP and inserted after the cursor. If DBLP has no record for the DOI, a notification is shown.

⚙️ Configuration

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",
})

⚠️ Disclaimer

This plugin was pretty heavily vibecoded with Claude Code.

About

Search, fetch, and insert DBLP entries right from Neovim

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages