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

使用 Vimdiff 比較檔案間的差異

這裡介紹如何使用 Vimdiff 來比較兩個檔案之間的差異,這個小工具可以讓開發者在檢查不同版本的程式碼時輕鬆很多。


一般在 Linux 系統中,如果要比較兩個文字檔案的差異,最常見的方式就是使用 diff 指令:
diff FILE_LEFT FILE_RIGHT
不過因為 diff 的功能有限,要靠 diff 來辨識檔案之間的差異處也不是很方便,如果您會使用 Vim 這個編輯器,那麼改用 vimdiff 會方便許多。

Vundle:Vim Plugin 自動下載、安裝、更新與管理工具(Vim Bundle)

Vundle 是一個可以自動下載、安裝與管理 Vim plugins 的工具,讓 Vim 的使用者可以很方便的使用各種 plugins。

Vim Logo

Vim 編輯器可以透過各種 plugin 來增加各種功能,在 Vim Scripts 網站上收錄了非常大量的 Vim 指令稿,使用者可以自己下載後安裝在 Vim 中使用。雖然這些 plugins 可以加強 Vim 的功能,但是如果安裝了太多的 plugins,在管理上就會比較麻煩,這時候就可以使用 Vundle 來幫忙管理所有的 Vim plugins。

Vim 使用 g 指令快速搜尋變數或文字

這裡介紹如何在 Vim 編輯器中使用 g 指令,快速搜尋游標所在的文字。


在使用 Vim 撰寫程式時,時常會需要在整個程式碼檔案中搜尋某個變數或函數的定義,或是尋找某個變數在哪些地方出現過,在 Vim 中最基本的搜尋方式是使用 / 向後搜尋,或是使用 ? 向後搜尋,不過每次使用這些搜尋功能時都要自己手動輸入要搜尋的字串,但是如果要搜尋的變數名稱很長的時候,要這樣自己打就很麻煩了。

Vim 搜尋名稱較長的變數

這裡我們介紹一個 Vim 中很實用的 g 指令,它可以讓使用者不必輸入那麼多文字就可以進行快速的搜尋與移動。

在使用之前,先將游標移動至要搜尋的變數上(這裡假設我們搜尋 immediate_callback_sym):


接著就可以使用下面幾種方式來搜尋指定的變數:
  • g*:向後搜尋游標所在位置的變數(或任何文字)。
  • g#:跟 g* 一樣,但是向前搜尋。
  • gd:移動到區域性(local)變數的宣告(declaration)位置。
  • gD:移動到全域性(global)變數的宣告位置。
如果這時候輸入 g*,Vim 就會向後搜尋 immediate_callback_sym


如果輸入 gd,就會移到 immediate_callback_sym 變數宣告的位置:


這裡的 g** 作用很相似,如果在 rain 這個文字上使用 g*,則連同 rainbow 這樣的字也會被納入搜尋,相當於使用 /\<rain\> 的效果:


但若使用 * 的話,就只會搜尋 rain 這個字而已,不會包含 rainbow,相當於使用 /rain


另外 g 指令還有兩個常見的用法:
  • gg:移動至檔案的第一行。
  • Ngg:移動至檔案的第 N 行,其中 N 可以是任何數字,例如 35gg 就是移動至第 33 行。
  • G:移動至檔案的最後一行。

參考資料:wikia

Vim.js:一個使用 JavaScript 實作的 Vim 編輯器(尚在發展階段)

Vim.js 是一個使用 JavaScript 實作的 Vim 編輯器,不過實用性不高,只適合學習與研究使用。


Vim.js 是把傳統 Linux 上的 Vim 編輯器以 JavaScript 實作在一般的瀏覽器中,不過目前還在發展當中,還不是很穩定,而且這種編輯器大概只適合比較資深的 UNIX/Linux 使用者作為「娛樂」使用。

VIM Adventures -- 玩遊戲學 VIM

VIM Adventures 是一個線上小遊戲,它可以讓你一邊玩遊戲,一邊學會 VIM 編輯器的使用方式。

VIM 是一個很傳統的文字編輯器,也是 UNIX 與 Linux 系統中標準的文字編輯器之一,但是因為它的操作方式與指令都很獨特,如果是剛入門的使用者通常都會感覺很難使用,有一定的學習門檻,如果沒用過 VIM 的人直接進入文字模式學習的話,通常都不會有太大的學習動力,而且學起來也很痛苦。

VIM Adventures 是一個仿照 VIM 的操作模式來設計的線上小遊戲,它的目的就是讓 VIM 的初學者可以一邊玩遊戲,一邊學習 VIM 複雜的鍵盤操作,這樣可以讓學習的過程不會那麼枯燥,在不知不覺中你就會習慣 VIM 的鍵盤操作模式,比起一般的學習過程應該會好很多。

VIM Adventures

使用 Vim 將程式碼排版並產生彩色的 HTML 網頁

如果想在網頁上貼上程式碼,最簡單的方式就是使用 <pre> 這個 HTML 標籤,但是這樣貼上去的程式碼會比較不好看,我們可以利用 vim 裡面的一些功能,將程式碼自動排版之後,再轉換為 HTML 碼,這樣貼上網頁後比較容易閱讀,而且也可以自動處理一些 HTML 中的特殊字元。以下是轉換程式碼的教學:

Step 1
如果沒有安裝 Vim 的話,請到 Vim 的官方網站下載安裝檔來安裝,Vim 支援各種作業系統,像常用的 Windows、Linux 與 Mac OS X 都有現成的安裝檔可以使用。

Step 2
將程式碼貼入 Vim 中。

在 Vim 中修正 ^M 換行符號

有時候把 Windows 中的文字檔案拿到 Mac 或 Linux 系統中編輯時,在每一行文字的結尾就會出現 ^M 這個符號,若是在 Mac 的系統之下,換行也有問題,看起來像這樣:


這個問題是因為不同的系統所使用的換行字元不同所引起的,Windows 中的換行字元是 \n\r,Linux 是 \n,Mac 則是 \r,這裡我們介紹如何使用 Vim 修正這個小問題。

Vim 錄製動作

Vim 是一個在 Unix/Linux 中最常見的編輯器,最近又發現一招,在常態模式(normal mode)按 'qa' 會將接下來的所有動作錄製起來存到暫存區 'a' ,再按一次 'q' 則結束錄製,重複暫存區 'a' 所錄製的動作則按 '@a',不過應該是不常用。