要做程式碼內容比對,但是在 vimdiff 預設是垂直分割,有些長內容要比較就不太好比,得把水平捲軸移來移去。
後來發現可以在命令模式 (command mode) 執行以下內容,就能把垂直分割改為水平分割:
小攻城師 發表在 痞客邦 留言(0) 人氣(444)
在新的機器上裝了 gVim 7.4,要使用檔案比較 (diff) 等功能時,都會出現以下錯誤訊息,告知無法讀寫暫存檔:
E810: Cannot read or write temp files
E97: Cannot create diffs
上網查了一下,大家的說法都是要改掉 _vimrc 裡的 MyDiff() 這個 function。
小攻城師 發表在 痞客邦 留言(0) 人氣(458)
工作上常常會把 Excel 轉存為 CSV 後,再利用有正規表示式 (regular expression) 置換能力的 VIM 來轉換為 SQL 語句。
但是 Excel 轉存的 CSV 檔是 ANSI 編碼,如果出現 UTF-8 的特殊怪字時,會無法存檔。這時候就要下個轉編碼格式儲存的指令:
:write ++enc=utf-8
讓寫檔時是以 UTF-8 格式儲存之。
小攻城師 發表在 痞客邦 留言(0) 人氣(1,102)
最近在一台 adminitrator 權限被鎖住的電腦上裝 vim,每次使用時,檔案初次開啟都會出現這組錯誤訊息:
E303: Unable to open swap file for "[No Name]", recovery impossible
E303: 無法開啟暫存檔 "[No Name]", 不可能修復了
小攻城師 發表在 痞客邦 留言(0) 人氣(918)
從原始碼拿出一大段 HTML,貼到 VIM 慢慢看,覺得很想把程式碼重新排版一下,就在 Google 找到《vim combo - 程式排版》。
做法是這樣:
1. 如果在插入模式 (insert mode),先按 Esc 跳回常態模式 (normal)。
2. 直接輸入 0ggVG=(第一個字是數字零,注意大小寫,畫面上不會出現你輸入的內容),輸入後按 Enter,排版完成。
依照 bluecat 的說明,這一串代表的意義如下:
0:回到行首(移到該行第0個字元)
gg:回到檔案開頭(←因為有這個,我覺得第一個0應該可以省略?)
V:視覺選取-列模式
G:到檔案結尾
=:重新排版
預設的內縮是 8 字元,有點太多,所以在 command mode(按 Esc 讓游標跳到畫面下方),輸入下列指令:
set shiftwidth=2
延線爬到 Blake 寫的一系列關於 VIM 的文章,有很多都超有趣的。 :D
小攻城師 發表在 痞客邦 留言(2) 人氣(10,572)