Personal tools
You are here: Home ブログ 学習経過 vim に lisp 機能をつける
« December 2010 »
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
sysfs tips 02 ohyama 2010-09-09
sysfs tips ohyama 2010-09-02
Haskell で周波数スペクトルを得る ohyama 2010-07-29
Haskell で線形識別関数の学習を行う ohyama 2010-07-19
Haskell で逆行列を求める ohyama 2010-07-16
Recent comments
Re:vim に lisp 機能をつける t.mimori 2010-12-16
Re:Haskell で周波数スペクトルを得る H.OHYAMA 2010-08-01
Re:lkml でお勉強 (その1-1) Hiroyasu OHYAMA 2009-08-21
Re:lkml でお勉強 (その1-1) kosaki 2009-08-20
Re:vim に lisp 機能をつける ohyama 2008-05-08
Categories
学習経過
GNU/Linux
 
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をインストールしていないので実際には試していません)

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

Re:vim に lisp 機能をつける

Posted by t.mimori at 2010-12-16 15:33
そのアイディアを発展させてみました。便利ですね〜。
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.