無外掛程式Vim編程技巧

來源:互聯網
上載者:User

標籤:

本篇文章轉自 酷 殼 – CoolShell.cn,作者是陳皓。不過這裡只轉載了一部分個人認為常用的技巧,並做了些小調整,這裡Vim的版本是7.3。

Vim 7.3上測試可行

瀏覽代碼

首先,我們先從瀏覽代碼開始。有時候,我們需要看多個檔案,所以,傳統的做法是,我們開多個tty終端,每個tty裡用Vim開啟一個檔案,然後來回切換。這很沒有什麼效率。我們希望在一個Vim裡開啟多個檔案,甚至瀏覽程式目錄。

瀏覽目錄的命令很簡單:(你也可以直接vim一個目錄)首先,我們先從瀏覽代碼開始。有時候,我們需要看多個檔案,所以,傳統的做法是,我們開多個tty終端,每個tty裡用Vim開啟一個檔案,然後來回切換。這很沒有什麼效率。我們希望在一個Vim裡開啟多個檔案,甚至瀏覽程式目錄。

瀏覽目錄的命令很簡單:(你也可以直接vim一個目錄)


:Ex

注意,是大寫。於是,你會看到下面這樣的介面:
![]( http://coolshell.cn//wp-content/uploads/2014/03/Explorer.png )
這個介面中,你可以用 j, k 鍵上下移動,然後斷行符號,進入一個目錄,或是找開一個檔案。你可以看到上面有一堆命令:這個介面中,你可以用 j, k 鍵上下移動,然後斷行符號,進入一個目錄,或是找開一個檔案。你可以看到上面有一堆命令:

  • 【 – 】 到上級目錄
  • 【D】刪除檔案(大寫)
  • 【R】改檔案名稱(大寫)
  • 【s】對檔案排序(小寫)
  • 【x】執行檔案(小寫)

當然,開啟的檔案會把現有已開啟的檔案給衝掉——也就是說你只看到了一個檔案。

如果你要改變當前瀏覽的目錄,或是查看當前瀏覽的目錄,你可以使用和shell一樣的命令:


:cd <dir> – 改變目前的目錄:pwd - 查看目前的目錄

緩衝區

其實,你用:Ex 瀏覽開啟的檔案都沒有被關閉,這些檔案都在緩衝區中。你可以用下面的命令來查看緩衝區:


:ls

於是,在你的Vim下,你會看到如下介面:
![]( http://coolshell.cn//wp-content/uploads/2014/03/buffer_ls.png)
你可以看到Vim開啟了四個檔案,編號是4,5,6,7,如果你要切換開啟的檔案,這個時候,你不要按斷行符號(按了也沒事,只不過按了就看不到:ls輸出的buffer列表了),你可以使用下面的命令切換檔案(buffer後面的4表示切到4號檔案也就是src/http/ngx_http.c):

:buffer 4

或是

:buffer src/http/ngx_http.c

注意,

  • 你可以像在Shell中輸入命令按Tab鍵補全一樣補全Vim的命令。
  • 也可以用像gdb一樣用最前面的幾個字元,只要沒有衝突。如:buff

你還可以動用如下命令,快速切換:


:bnext 縮寫 :bn:bprevious 縮寫 :bp:blast 縮寫 :bl:bfirst 縮寫

中,我們還可以看到5有一個%a,這表示當前檔案,相關的標記如下:
- (非活動的緩衝區)
a (當前被啟用緩衝區)
h (隱藏的緩衝區)
% (當前的緩衝區)
# (交換緩衝區)
= (唯讀緩衝區)
+ (已經更改的緩衝區)

視窗分屏瀏覽

相信你在《Vim的視窗分屏》一文中,你已經知道了怎麼拆分視窗了。其實,我更多的不是用拆分視窗的命令,而是用瀏覽檔案的命令來分隔視窗。如:

把當前視窗上下分屏,並在下面進行瀏覽目錄:


:Hex 全稱為 :Hexplore (在下邊分屏瀏覽目錄)

如果你要在上面,你就在 :He後面加個 !,

:He! (在上分屏瀏覽目錄)

如果你要左右分屏的話,你可以這樣:

:Ve 全稱為 :Vexplore (在左邊分屏間瀏覽目錄,要在右邊則是 :Ve!)

分屏同步移動

要讓兩個分屏中的檔案同步移動,很簡單,你需要到需要同步移動的兩個屏中都輸入如下命令(相當於使用“鐵鎖連環”):


:set scb

如果你需要解開,那麼就輸入下面的命令:

:set scb!

註:set scb 是 set scrollbind 的簡寫。

其他技巧

字元相關

【guu 】 把一行的文字變成全小寫。或是【Vu】【gUU】 把一行的檔案變成全大寫。或是【VU】按【v】鍵進入選擇模式,然後移動游標選擇你要的文本,按【u】轉小寫,按【U】轉大寫【ga】 查看游標處字元的ascii碼【g8】 查看游標處字元的utf-8編碼【gf】  開啟游標處所指的檔案 (這個命令在打到#include標頭檔時挺好用的,當然,僅限於有路徑的)【*】或【#】在當前檔案中搜尋當前游標的單詞

縮排相關

【>>】向右給它進當前行 【<<】負值縮排當前行【=】  縮排當前行 (和上面不一樣的是,它會對齊縮排)【=%】 把游標位置移到語句塊的括弧上,然後按=%,縮排整個語句塊(%是括弧匹配)【G=gg】 或是 【gg=G】  – 縮排整個檔案(G是到檔案結尾,gg是到檔案開頭)

游標移動相關

【Ctrl + O】向後回退你的游標移動【Ctrl + I 】向前追趕你的游標移動

這兩個快速鍵很有用,可以在Tab頁和Windows中向前和向後trace你的游標鍵,這也方便你跳轉游標。【Ctrl + O】向後回退你的游標移動

系統相關

【K】(大寫K),調出當前游標下系統函數的manual手冊

無外掛程式Vim編程技巧

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.