vim-db: Modern database interface for Vim

03-08 20:47


DB 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:
    • MongoDB
    • MySQL
    • PostgreSQL
    • Redis
    • 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


The :DB command has a few different usages. All forms accept a URL as the first parameter, which can be omitted if a default is configured or provided by a plugin.

Omit further arguments to spawn an interactive console (like psql or redis-cli ).

:DB postgresql:///foobar :DB redis:

If additional arguments are provided, they are interpreted as a query string to pass to the database. Results are displayed in a preview window.

:DB sqlite:myfile.sqlite3 select count(*) from widgets
:DB redis:/// CLIENT LIST

Give a range to run part or all of the current buffer as a query.

:%DB mysql://root@localhost/bazquux

Use < to pass in a filename.

:DB mongo:///test < big_query.js

There's also a special assignment syntax for saving a URL to a Vim variable for later use.

:DB g:prod = postgres://
:DB g:prod drop table users

A few additonal URL like formats are accepted for interop:

  • :DB jdbc:postgresql://...
  • :DB dbext:profile_name
  • :DB dbext:type=PGSQL:host=...
  • :DB $DATABASE_URL (with optional dotenv.vim support)

Plugins can provide their own URL handlers as well. For example, heroku.vim provides support for heroku:appname style URLs.


Install using your favorite package manager, or use Vim's built-in package support:

mkdir -p ~/.vim/pack/tpope/start
cd ~/.vim/pack/tpope/start
git clone
vim -u NONE -c "helptags db/doc" -c q


Like db.vim? Star the repository on GitHub and vote for it on .

Love db.vim? Follow tpope on GitHub and Twitter .


Copyright © Tim Pope. Distributed under the same terms as Vim itself. See :help license .

标签: 数据库 Vim
© 2014 TuiCode, Inc.