interacting with databases in vim

Dadbod is a Vim plugin for interacting with databases. It’s a more modern take on dbext.vim, improving on it on the following ways:

  • Connections are specified with a single URL, rather than prompting you for 14 separate variables
  • All interaction is through invoking :DB, not 53 different commands and 35 different maps (omitting many of the more esoteric features, of course)
  • Supports a modern array of backends, including NoSQL databases:
    • ClickHouse
    • Impala
    • jq
    • MongoDB
    • MySQL
    • Oracle
    • osquery
    • PostgreSQL
    • Presto
    • Redis
    • SQL Server
    • SQLite
    • Your own easily implemented adapter
  • Easily configurable based on a project directory (as seen in rails.vim, for example), rather than just globally or in a per-file modeline
  • For those that just can’t live without some piece of dbext functionality, the option g:dadbod_manage_dbext is provided to force dbext to use Dadbod’s default database.



vim-dadbod-ui: Simple UI for vim-dadbod. It allows simple navigation through databases and allows saving queries for later use.

Tested on Linux, Mac and Windows, Vim 8.1+ and Neovim.


  • Navigate through multiple databases and it’s tables and schemas
  • Several ways to define your connections
  • Save queries on single location for later use
  • Define custom table helpers
  • Bind parameters (see :help vim-dadbod-ui-bind-parameters)
  • Autocompletion with vim-dadbod-completion
  • Jump to foreign keys from the dadbod output (see :help <Plug>(DBUI_JumpToForeignKey))
  • Support for nerd fonts (see :help g:db_ui_use_nerd_fonts)
  • Async query exection (requires using fork branch for now, see #46 (comment))