最近看到一個 Firefox Extension “vimperator“,我只能說,這個東西真是太棒了,尤其對我這種 VIM 重度使用者來說,真是一大福音啊!
看了一下官網的說明,大部份的常用指令都有實作,而且一裝完介面瞬間感受得到有種 VIM-Style,官網還有 Tips & Tricks 專區,不過目前看來數量沒有很多,google 一下應該可以找到更多人的使用經驗,也有些人直接把設定放出來。
現在正在探索它的設定,畢竟跟原本的 VIM 還是有些許不同,對於網頁瀏覽方面應該會有一些對應的設定和功能以增加方便性。有心得再 post 出來。
這份投影片是之前在系計中內部分享的,整理了一下 share 出來,裡面有些嘴砲請自動略過 XD。有錯也請指正
這份 slide 是之前在 Y 社內部 Intern Sharing 所準備的,算是小技巧大集合,分享出來給大家,希望會有幫助。
裡面提到的大多都是建立在「我所認為舒服的環境」的前提上所給的技巧和設定;每個人有每個人認為舒服的設定,這是很主觀的,所以純粹只是當參考。
Published on
December 12, 2007 in
工具 and 電腦技術.
Tags: vim.
很多人在用 vim 的時候,常常搞不懂要怎麼設定,這篇是之前分享在系計中的文章,順便轉過來。
在 vim 當中,編碼的設定主要有下列三種,它們代表的意思如下:
- encoding (enc):設定 vim 內部要以何種編碼表示
- termencoding (tenc):實際輸出到終端機的畫面
- fileencoding (fenc):文件實際的編碼
最好多加上一行 filencodings 的設定:
set fileencodings=utf-8,big5,euc-jp,gbk,euc-kr,utf-bom,iso8859-1
因為一般的 text file 不會在檔案中註明這份文件的編碼是什麼。所以 vim 在開啟文件的時候會依照 fileencodings 的先後順序來嘗試解析這份文件,當決定了這份文件的編碼(fenc)後,便會將它轉換成內部系統的編碼(enc)來處理,而內部系統的編碼又會依照終端機的編碼(tenc)轉換後傳給終端機。所以當 putty 的編碼設定成 big5,但 server 上的編碼是 utf-8,此時便要設定:
set encoding=utf-8
set termencoding=big5
這樣子,server 上依然是以 utf-8 在運作,只是輸出到 putty 時會轉成 big5 給它,而且 putty 上的輸入也會自動轉成 utf-8 到 vim 上,但一般來說都會把 encoding 和 termencoding 設成一樣。
至於 fileencoding,有時候 vim 自動解析會出現誤判,例如明明是 big5 編碼的檔案,它偏偏用 latin1 來 parsing (這個 wwwTA 將 big5 網頁轉成 utf-8 的時候常發生)。如此一來,便會出現亂碼,但是不要以為檔案壞掉了,其實只要先 check fenc 的值看是不是檔案實際的編碼,如果不是,多半只是誤判,此時只要下:
:e ++enc=<指定的編碼>
即可以指定的編碼來解析文件。 (Note: 這裡的 enc 指的不是 encoding,而是 fenc)
fileencoding 還有一項好用的用途,當儲存檔案的時候,vim 也會依據 fileencoding 的設定將文件由 enc 的編碼轉換為 fenc 的編碼,所以只要在編輯文件的時候下:
:set fenc=<指定的編碼>
就可以將文件儲存成指定的編碼了(其實用 iconv 比較快啦!不過改網頁的時候可以直接在 vim 上改編碼),不過記得要在一開始讀文件時的編碼就要對的情況下用,不然對亂碼轉碼的下場就是整個文件爛掉,常有人會在自動解析錯誤的情況下,以為 set fileencoding 成正確的,就可以把文件用正確的編碼解析,其實這個動作會把現在解析錯誤的文件設定成你以為是正確的編碼,結果就是整個文件的編碼都錯了,應該用上面提到的:
:e ++enc=XXX
來用正確的編碼重新讀取文件。
Published on
November 4, 2007 in
工具 and 電腦技術.
Tags: vim.
記得先編 libiconv 再編 vim-lite,不然 vim-lite 不會把 iconv 的功能加進來。
P.S. 如果想看 iconv 是否有沒有編進來,可以在 vim 指令模式下 “version”,就可以看到了,’+’ 代表有,’-’ 代表沒有,如圖,”+iconv” 就代表這個模組有包進來。
Update: 看了 Makefile 其實可以不用這麼麻煩,有沒有加入 iconv 是看 USE_ICONV 這個設定變數的,所以只需要下:
make USE_ICONV=yes install
Update: 認真看了一下 USE_ICONV 用了也沒用,因為 Makefile 裡有這段:
.if exists(${PREFIX}/lib/libiconv.so)
USE_ICONV= yes
.endif
簡單來說,即使有 USE_ICONV 它也不會自動幫你編 libiconv
Recent Comments