顯示具有 VIM 標籤的文章。 顯示所有文章
顯示具有 VIM 標籤的文章。 顯示所有文章

2009年4月22日 星期三

強化 Python 在 Vim 裡的顏色

我習慣用 putty 連 Unix server 開 screen,再用 vim 寫 Python。這篇記錄如何改善 Python 的顏色。

啟動 256 色 terminal

首先將可用的色彩數增加為 256 色,先確定 putty 為新版 ( 舊版 putty 沒支援 256 色)。接著參照《讓 Vim、Screen 支援 256 色》將 Screen 和 Vim 設好,記得先用文末提到的 Colortest 測試是否有符合 256 色,成功的話,數字 0 ~ 15 為原本的 16 色,16 ~ 231 為新的顏色 (6 x 6 x 6),232 ~ 255 為新的灰階色。可配合 Colortest 看到數字值和顏色。

這裡備忘該篇提到的步驟:

  • 在 ~/.vimrc 加入:
    1
    
    set t_Co=256
  • 在 ~/.screenrc 加入:
    1
    
    termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'

更新 Python script 偵測的格式

更新 syntax/python.vim,讓 Vim 偵測出更多種格式,像是行末多的空白,或是空白行有含空格都會被偵測出來。做法如下:

  1. 下載最新的 python.vim 並放到 ~/.vim/syntax/ 下。
  2. 編輯 ~/.vimrc,加入
    1
    
    let python_highlight_all = 1

    以顯示所有 python.vim 有偵測的格式。參照 python.vim 開頭的註解,了解細部選項。

替換顯示的顏色

  1. 下載 Vim color scheme: Wombat256.vim,並放到 ~/.vim/colors/ 下。
  2. 在 ~/.vimrc 裡加入
    1
    
    colorscheme wombat256

如此一來就有漂亮的顏色啦,wombat256 的 screenshot 見這裡

備註

這個網站有提供許多不同的 color scheme screenshot,可惜沒附 Python 的 screenshot。

2007年9月24日 星期一

VIM-LaTeX

官網:http://vim-latex.sourceforge.net/

下載和安裝說明:抓下壓縮檔、解開到~/.vim下(Un*x)或~/vimfiles(Windows),就這麼簡單。

這玩意兒真是太強了,之前自己key那堆符號是key心酸的。place holder的概念真不錯,打完該打的字後,按個Ctrl+j就能跳到下個位置,像插入Figure時感受特別明顯,打個EFI後,就能一路填完檔名、標題、索引名稱等。還有以 ` (反單引號)開始的縮寫字,像是 `/ 會變成分數用的 \frac{}{}, `* 變成乘法 \cdot,省不少工。愛惜手指,才能用更久啊!

其它像插入reference也是超方便,會先列出各節內的label,游標移上去按個ENTER就自動加進去了。若要發揮更完整的力量GVIM才是王道啊,開始考慮要不要移回Windows環境用LaTeX,之前習慣在Un*x server上做事,自然地也在上面用LaTeX了。

2007年3月11日 星期日

tcsh/bash在command line下用VI編輯

昨天去找Scott(俗稱老光頭)聊Python和Ruby的比較,昨天的談話引起我學Python的興致,等再學一陣子Ruby和Python後再來po心得。

Scott習慣在bash、ipython下都用VI編輯,跟著試用一下,好像也有好處,最近把工作環境也改過來,用一陣子看看會不會較方便。

bash下要設~/.inputrc:

set editing-mode vi # Select vi bindings
set editing-mode emacs # Select emacs bindings (default)

tcsh下直接設~/.tcshrc:

bindkey -v # Select vi bindings
bindkey -e # Select emacs bindings (default)

2007年2月22日 星期四

在VIM內直接執行script language

很久以前就很羨慕Emacs和script language的結合,沒想到VIM也可以輕易做到。

從《Programming Ruby》ch13 Editor Support看來的,只要script language屬於one pass interpreter,像是Ruby、Python,就可以把code直接導給interpreter。在VIM裡,以Ruby為例的做法如下:

:% w !ruby

  • 第一個欄位表示範圍,’%'是全文的意思
  • 第二個欄位是指令,’w'表示存檔
  • 第三個欄位是參數,’!'是執行外部程式,’!ruby’表示執行ruby

換句話說,”:% w !ruby”相當於在shell下這麼寫:

# cat my_script.rb | ruby

配合autocmd在~/.vimrc裡加上巨集,按F10就會執行檔案內的script:

autocmd BufRead,BufNewFile *.rb map <F10> :% w !ruby<CR>
autocmd BufRead,BufNewFile *.py map <F10> :% w !python<CR>

VIM的範圍操作用很強,也可以先用’V'(大寫V)選好範圍,再按’:'進ex mode,打 “w !ruby”就能只執行選取的部份。

:’< ,'> w !ruby # 執行選取範圍
:1,10 w !ruby # 執行1 - 10行的code

指令裡不含 ‘w’ 的話,執行完的結果會直接取代原本的內容。

2007年2月21日 星期三

Ruby + Rails + TextMate的demo影片和Ruby + VIM

眼見為憑,這裡這裡有些demo影片,似乎移動滑鼠讓人有罪惡感似的。學會這些工具後,確實如Brooks在《人月神話》裡的《再論沒有銀彈》所說一般,沒有萬能的方法或工具,但當我們把多個方法和工具合在一起時,軟體開發仍有可能達到數量級的提升。初看感到驚喜,接著讓我感到噁心,為什麼我要學這些東西?看來我有些工程師的屬性,但不適合走這條路。

看了幾個demo影片後,個人推薦“Inserting HTML Tags”,可惜只有Mac有TextMate,而且處理中文仍有問題。VIM應該有類似的補tag、補Ruby code的功能才對,不過我目前連Ruby在VIM內的indent都沒弄好,愈來愈懶得弄工作環境了。

Updated

打入def後,看到沒有end出來,忍不住找了一下VIM相關plugin。

  • Vim/Ruby Configuration Files:懶人包,把一堆plugin和doc合在一起,我沒試。
  • rubycomplete.vim :ruby omni-completion。看起來強的樣子,打Ctrl+X Ctrl+O會有選單,但要VIM7.0 + ruby interface(?),我只會在ports下打make install裝VIM,沒法試。
  • ruby-macros.vim:macros for the ruby language。至少打def後會有end了,當然if、for也有,單雙引號之類沒寫好,反而難用,我把這部份的設定註解掉。
  • rails.vim: Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more。看起來頗強的,前兩項在insert mode用,這在ex mode用,用自訂的命令可以在VIM內做些shell下的事,像是rake、ri。附加些強大指令,像是extract view內幾行,另存成subview檔(_XXX.rhtml),並且附有詳細文件。但我懶得學這些指示,還是IDE較方便。

結論:至少打def後會有end了。