2010年2月19日 星期五

在 VIM 中執行選取區塊內的程式

用 Limp 時發現可以選取區塊後直接執行, 轉念一想, 這應該可以用在任何有直譯器的語言。首先在 ~/.vimrc 內加入這兩行 (以 Python 為例):
autocmd BufRead,BufNewFile *.py map <F10> :% w !python
autocmd BufRead,BufNewFile *.py vmap f :w !python
這裡的意思是編輯副檔名為 py 的檔案時才套用後面的命令。第一行表示按 F10 就將內文全部透過 pipe 丟給 python。相當於在 shell 下這麼做:
cat MY_SCRIPT.py | python
第二行將指令對應到 visual mode (按 V, v, Ctrl+v 選取區塊), 選好區塊後按 f 會執行被選到的那幾行程式。假設選到的是第三到五行, 相當於在 shell 下這麼做:
head -5 MY_SCRIPT.py | tail -3 | python
選用 f 只是我個人習慣 (最不費力的鍵), 大家可以換成自己喜歡的鍵。其它語言只要有直譯器, 把設定中的 python 換成該直譯器 (比方 ruby), *.py 換成對應的副檔名 (比方 *.rb) 即可。

本文作法比較陽春, 希望足以應付大部份的情況。

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...