Personal tools
You are here: Home ブログ 学習経過 vim に lisp 機能をつける
« May 2008 »
Su Mo Tu We Th Fr Sa
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Recent entries
vim に lisp 機能をつける ohyama 2008-05-04
ブートローダー(その7) ohyama 2008-04-01
ファイルシステム(その6) ohyama 2008-03-14
ファイルシステム(その5) ohyama 2008-02-28
ファイルシステム(その4) ohyama 2008-02-14
Categories
学習経過
 
Document Actions

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 を実行する。

 screen shot 01

これで、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 機能をつける

Posted by kana at 2008-05-07 15:06
vnoremap YPgv:!gcl -f
標準入力からソースを読み込ませることができるのであればこれで十分では?
(gclをインストールしていないので実際には試していません)

Re:vim に lisp 機能をつける

Posted by kana at 2008-05-07 15:09
vnoremap YPgv:!gcl -f<Return>
半角<>が何故か削除されたので修正。

Re:vim に lisp 機能をつける

Posted by ohyama at 2008-05-08 07:03
> vnoremap YPgv:!gcl -f

visual モードで 'P'+'gv' を使った上で、これを標準出力に渡すこの方法は、とても汎用的で勉強になります。

>(gclをインストールしていないので実際には試していません)

適当なコマンドにマッピングさせて評価したところ、見事に結果が出力されました。
ありがとうございます。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.