2012/03/08

Recent entries from same category

  1. VimConf 2023 Tiny に参加しました
  2. Vim で Go 言語を書くために行った引越し作業 2020年度版
  3. Vim をモダンな IDE に変える LSP の設定
  4. ぼくがかんがえたさいきょうの Vim のこうせい 2019年 年末版
  5. VimConf 2019 を終えて

DB操作ツール Emacs DBI を作ってみた - 技術日記@kiwanami

このツールの目的は、クロスプラットフォームで便利なDB操作環境を実現することです。 pgAdmin や MySQL Query Browser のようなGUIの良さをCUIで実現してみようとしてみました。すなわち、ぼくのかんがえたさいきょうのDBツールです。ちなみに、このツールにとってEmacsはただの実行環境です。Emacs使わない人でも使うと便利だと思います。

http://d.hatena.ne.jp/kiwanami/20120305/1330939440
VimもーVimもー!

って事で作りました。

mattn/vdbi-vim - GitHub

Database client for Vim

https://github.com/mattn/vdbi-vim
Emacs版はepcというRPCプロトコルを使ってますが、Vimはソケットクライアントを常時接続したままにするにはperl/python/ruby拡張を使う必要があり、場合によっては動かない人もいるのでcurlコマンドとサーバ処理を行うperl部分以外は全てvimスクリプトで動くようにしました。
通信はXMLRPCJSONRPCを使っています。webapi-vimの最新版が必要です。もちろん無料です。
perl部分についてはXMLRPCJSONRPCを使うのでいくらかモジュールが必要です。README.mkdに書いてあります。DBDモジュールは個別で必要な物をインストールして下さい。
:VDBI
とするとデータソース/ユーザ名/パスワードを聞かれます。これはedbiと同じく、PerlのDBIモジュールの接続時パラメータになります。例えば以下の様な感じ。

SQLite

dbi:SQLite:dbname=/path/to/database/foo.db

MySQL

dbi:mysql:dbname=foo

PostgreSQL

dbi:Pg:dbname=foo

Oracle

dbi:Oracle:foo

data viewer

無事接続出来るとテーブル一覧が表示されます。各行でエンターキーを押すとカラムビューになります。またこの画面で <leader>s をタイプすると SQL 入力ウィンドウが表示されます。
入力中に <c-e> をタイプすると SQL が実行されてデータビューワに表示されます。

data viewer

この辺は edbi と同じ様な動きになっています。<c-r> をタイプするとヒストリが選べるので前に入力した SQL を呼び出す事も出来ます。上で説明したデータソースの履歴も同様です。

なかなかいいものが出来たかなーとは思いますが、内部処理を Pure Vimscript でやっている手前、あまり速くはありません。
もしかしたら JSON RPC に作り変えた方がいいかもしれない。まぁこの辺はおいおいやっていくつもりです。

宜しければどうぞー。
Posted at by