2008/05/04
vim に lisp 機能をつける
emacs ユーザーが当り前のようにコマンドラインから lisp 式を評価している姿がこの上なく羨ましかったので、vim から直接式を評価して返す機能を作ってみた。
lisp コンパイラを自作するのは大変なので gnu common lisp を呼び出し、結果を返す事にする。
~/.vimrc に以下の行を追加する。
let g:global_value = "/tmp/.tmp.txt"
vmap <C-L> :w! /tmp/.tmp.txt<CR>
nmap <C-L> :cal Mylispeval()<CR>
function Mylispeval()
execute "r !gcl -f < ".g:global_value
endfunction
3行目では、ビジュアルモードにおいて Ctrl_L に '< から '> までの領域を適当なファイル(/tmp/.tmp.txt)に書き出す処理をマッピングさせている。
そして次の行で、ノーマルモードにおけるキーマッピングを行っている。
以下が実際にこいつを使ってみた画像。ビジュアルモードでS式を選択し、Ctrl_L を実行した後、ノーマルモードで適当な場所で Ctrl_L を実行する。
これで、emacs に対する劣等感が一つ解消した。
- Category(s)
- 学習経過
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/ohyama/vim-306b-lisp-6a5f80fd309230643051308b/tbping
Re:vim に lisp 機能をつける
標準入力からソースを読み込ませることができるのであればこれで十分では?
(gclをインストールしていないので実際には試していません)
Re:vim に lisp 機能をつける
半角<>が何故か削除されたので修正。
Re:vim に lisp 機能をつける
visual モードで 'P'+'gv' を使った上で、これを標準出力に渡すこの方法は、とても汎用的で勉強になります。
>(gclをインストールしていないので実際には試していません)
適当なコマンドにマッピングさせて評価したところ、見事に結果が出力されました。
ありがとうございます。
Re:vim に lisp 機能をつける