Vim Common Cmds:

來源:互聯網
上載者:User

neonlight@live.cn發表,轉載請註明出處。

Common Cmds:
% 跳轉到配對的括弧去
[[ 跳轉到代碼塊的開頭去(但要求代碼塊中'{'必須單獨佔一行)
gD 跳轉到局部變數的定義處
'' 跳轉到游標上次停靠的地方, 是兩個', 而不是一個"
mx 設定書籤,x只能是a-z的26個字母
`x 跳轉到書籤處("`"是1左邊的鍵)
> 增加縮排,"x>"表示增加以下x行的縮排
< 減少縮排,"x<"表示減少以下x行的縮排

一、進入編輯器
行:edit,e,ex
螢幕:vi,v,view
vi -r filename(繼續意外中斷的檔案編輯)
vi file1 file2 file3(編輯完前一個檔案,用:w儲存後,用:n開始下一個檔案編輯)
vi -x filename(對encrypt加密檔案編輯)
vi 中執行Unix命令([[加數字代表獨到第幾行]加r代表把結果讀進vi中]!ls)
vi 命令列編輯功能($set -o vi)

二、行編輯器命令
edit(或e,ex)命令
屏編轉換:v(轉屏編),vi(轉屏編),:(轉行便)
:wq(存檔退出),:q(退出),:q!(強行退出),:w(儲存),:w file(另存新檔)
:n(移動到n行),:np(顯示並移動到n行),:m,np(顯示m行到n行內容,移動到n行),
:d(顯示當前行),:nd(刪除第n行內容,移動到n下一行),:m,nd(刪除第m到第n行,移動到n行),
:a(在當前行的下移行開始輸入文本,直到ESC),1,$(第一行到最後行),:.,$(當前行到最後行)

舉例:
:s/stirng1/string2/(把第一個字元替換為第二個字元)
:m,ns/string1/string2/g(g代表所有,mn替換範圍限制在m行到n行中)
:%s/string1/string2/g(%代表全文替換)

三、vi基礎控制命令
:wq(存檔退出),:q(退出),:q!(強行退出),:w(儲存),:w file(另存新檔)
:r filename(把檔案加到當前行後)
游標移動:上下左右方向鍵,或hjkl,^(行首),$(行尾),
+(下移一行),-(上移一行),空格(左移),退格(右移)
進入編輯態:(游標前),I(行首),a(游標後),A(行尾),o(下面加行),O(上面加行),ESC(返回命令模式)

四、vi基礎編輯命令
刪除文本:x(字元),dw(單詞),D(當前位置到行尾),dd(當前行)
替換文本:r(單個字元),cw(單詞)
搜尋文本:/(當前向尾),?(當前向頭),n(找下一個),N(找前一個)
其它命令:u(撤銷),.(重複),J(串連下移行),P(粘貼刪除內容)

命令舉例:2dd/p(刪除兩行粘貼),2yy/p(複製兩行粘貼)

五、vi設定命令
加行序號:set number,set nonumber

六、vi集合命令
在一段文字前,垂直插入字串

ctrl+v  //垂直作塊選中段落首列
shirt+i //在文本前插入
輸入字串
Esc      //命令結束
}

七、vi編程技巧
跟蹤標頭檔:gf
查看函數定義:[+I
跳轉到函數定義:[+tab
ctags命令
定義跟蹤:ctrl+[
ctrl+o:跟蹤返回

可用ctrl+z將vi轉入後台,fg可返回vi
make調試視窗:
在執行過:make後,執行cw,視窗出現
關閉調試視窗cclose或ctrl+w  c

.重複上次的命令

八、vim摺疊命令
前言準備:
(1)首先保證自己安裝的是完整版vim,ubuntu 8.04內建的不是完整版。
(2)懶得看長文章,列舉最實用的摺疊語句。
(3)在foldmethod=manual 狀態下執行,你可以用:set foldmethod=manual命令切換到這個狀態。
(4)neonlight@live.cn發表,轉載請註明出處。

建立摺疊:
(1)zf:用v做塊選定要摺疊的語句,摺疊用zf(z很像摺疊的形狀,f是fold縮寫)。
(2)zf[x]j:向下摺疊x行,例如zf9j。
(3)可以用一般的定位的方法來告訴VIM你要摺疊那些地方:也可以用marker, 還可以用行號:20,50, 就可以把20行到五十行摺疊起來 。
(4)方便的折起函數:移動到一個花括弧{上(或者函數體內也行), 用zfa}, 就可以將下面的匹配的花括弧之間的內容折起來。 其他的摺疊方法還有zf/string, 可以摺疊到下一個匹配的string。

使用摺疊:
(1)移動的時候在前面加一個z就可以在摺疊的地方移動, 比如zj,就會跳到下一個摺疊, zk就是上一個。
(2)要開啟的話可以zo,o是open的意思, zO開啟所有的摺疊。
(3)關上用zc, c是close。 在zO之後用zc會關上所有開啟的摺疊。
(4)摺疊可以嵌套, zr可以開啟第一層的摺疊,zR可以開啟所有層的摺疊, 與之對應的是zm和zM, 是按層關上摺疊。 比如說按zm, 會從最裡層的層疊關起, 連續zm就會一直關到最上層的摺疊。

尋找到了摺疊裡面會將摺疊開啟, 處理完了之後要自己將摺疊關上。

摺疊選項:
可以讓VIM根據文法, 縮排,標記自動摺疊。 用set foldmethod=foldoption 來設定。 可以查看一下foldmethod 。

保留摺疊:
(1)要下一次開啟的時候還保留摺疊可以在離開的時候:mkview,再進來的時候:loadview就可以了。
(2)當然也可以將這兩句加到vimrc裡面讓其自動完成。
au BufWinLeave * mkview
au BufWinEnter * silent loadview
這樣每次就可以看到上次的摺疊了。

其它技巧:
:set foldmethod=manual後,zc按縮排關閉所有摺疊

vim摺疊設定補充:(轉載)

set foldmethod=indent "set default foldmethod"zi 開啟關閉摺疊"zv 查看此行zm 關閉摺疊zM 關閉所有zr 開啟zR 開啟所有zc 摺疊當前行zo 開啟當前摺疊zd 刪除摺疊zD 刪除所有摺疊1. 摺疊方式可用選項 'foldmethod' 來設定摺疊方式:set fdm=*****。有 6 種方法來選定摺疊:manual           手工定義摺疊indent             更多的縮排表示更進階別的摺疊expr                用運算式來定義摺疊syntax             用文法高亮來定義摺疊diff                  對沒有更改的文本進行摺疊marker            對文中的標誌摺疊注意,每一種摺疊方式不相容,如不能即用expr又用marker方式,我主要輪流使用indent和marker方式進行摺疊。使用時,用:set fdm=marker 命令來設定成marker摺疊方式(fdm是foldmethod的縮寫)。要使每次開啟vim時摺疊都生效,則在.vimrc檔案中添加設定,如添加:set fdm=syntax,就像添加其它的初始化設定一樣。2. 摺疊命令選取了摺疊方式後,我們就可以對某些代碼實施我們需要的摺疊了,由於我使用indent和marker稍微多一些,故以它們的使用為例:如果使用了indent方式,vim會自動的對大括弧的中間部分進行摺疊,我們可以直接使用這些現成的摺疊成果。在可摺疊處(大括弧中間):zc      摺疊zC     對所在範圍內所有嵌套的摺疊點進行摺疊zo      展開摺疊zO     對所在範圍內所有嵌套的摺疊點展開[z       到當前開啟的摺疊的開始處。]z       到當前開啟的摺疊的末尾處。zj       向下移動。到達下一個摺疊的開始處。關閉的摺疊也被計入。zk      向上移動到前一摺疊的結束處。關閉的摺疊也被計入。當使用marker方式時,需要用標計來標識代碼的摺疊,系統預設是{{{和}}},最好不要改動之:)我們可以使用下面的命令來建立和刪除摺疊:zf      建立摺疊,比如在marker方式下:zf56G,建立從當前行起到56行的程式碼摺疊功能;10zf或10zf+或zf10↓,建立從當前行起到後10行的程式碼摺疊功能。10zf-或zf10↑,建立從當前行起到之前10行的程式碼摺疊功能。在括弧處zf%,建立從當前行起到對應的匹配的括弧上去((),{},[],<>等)。zd      刪除 (delete) 在游標下的摺疊。僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。zD     迴圈刪除 (Delete) 游標下的摺疊,即嵌套刪除摺疊。僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。zE     除去 (Eliminate) 視窗裡“所有”的摺疊。僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。使用Vim的摺疊功能書寫程式碼折行的用處:2 建立折行進行大綱預覽2 移動到某處進行編輯2 使用jzij開啟文本進行編輯2 編輯完畢後再用jzij開啟折行進行移動開啟vim的摺疊功能,請在~/.vimrc 中加入:set foldmethod=marker ,使用vim預設的摺疊標籤進行處理。使用方法如下:1、加摺疊標籤在normal模式下,從鍵盤輸入zf並斷行符號,您就會看到摺疊在一起的兩列標籤如下:/*{{{*/.....這裡輸入您 的程式碼/*}}}*/2、輸入程式碼後,將程式碼摺疊功能起來使用如下命令(normal模式):zc 斷行符號3、開啟摺疊的程式有以下幾種方法a、在摺疊的行上移動游標b、在normal模式下輸入zo並斷行符號4、給一段文字加折行(normal 模式)zfap5、zr命令可以開啟摺疊幾層的內容 zm使用內容摺疊的更多一些(多層摺疊操作時可反覆使用)。6、嵌套了多層的折行, 也可以用zR命令一次開啟所有折行7、關閉所有的嵌套折行使用zM8、可以用jznj命令來禁用一個折行. 然後用jzNj還可以恢複它. jzij命令則可以在兩者之間切換.其它的,請參考vim的使用手冊。---------------------------------------------------------------------------------------------------在查看代碼的時 候,如果代碼十分冗長,尤其是 c/c++系列的時候,代碼結構比較讓人難以理清,主要是各種注釋、括弧的匹配問題,雖然可以用%來查看匹配的另外一半符號在哪裡,但是 如果這一對符號之間的代碼超過了一頁,甚至好幾頁的話,那麼也是比較難以理解的。於是可以使用這個vim所提供的摺疊功能來簡化這些分析。我 使用的vim是rh9內建的版本。摺疊的方式:vim 提供 6中摺疊方式          manual           手工定義摺疊          indent             更多的縮排表示更進階別的摺疊          expr                用運算式來定義摺疊          syntax             用文法高亮來定義摺疊          diff                  對沒有更改的文本進行摺疊          marker            對文中的標誌摺疊可用選項 'foldmethod' 來設定摺疊方式:set fdm=*****。注意,每一種摺疊方式不相容,即:你不能用expr又用marker方式。目前我一般使用的都是indent 比較多。使用時,用:set fdm=indent 命令來設定成marker摺疊方式。在.vimrc檔案中添加設定,可以使得每次打 開vi 都啟動摺疊方式。如添加:set fdm=syntax。2. 摺疊開啟與摺合選取了摺疊方式後,我們就可以對某些代碼 實施我們需要的摺疊了。如果使用了indent方式,vim會自動的對大括弧的中間部分進行摺疊,我們可以直接使用這些現成的摺疊成果。indent 對應的摺疊代碼有:zc      摺疊zC     對所在範圍內所有嵌套的摺疊點進行摺疊zo      展開摺疊zO     對所在範圍內所有嵌套的摺疊點展開[z       到當前開啟的摺疊的開始處。]z       到當前開啟的摺疊的末尾處。zj       向下移動。到達下一個摺疊的開始處。關閉的摺疊也被計入。zk      向上移動到前一摺疊的結束處。關閉的摺疊也被計入。使 用時在大括弧中間輸入以上命令。當使用marker方式時,需要用標計來標識代碼的摺疊,系統預設是{{{和}}},最好不要改動之:)可 以使用下面的命令來建立和刪除摺疊:zf      建立摺疊,比如在marker方式下:                   zf56G,建立從當前行起到56行的程式碼摺疊功能;                   10zf或10zf+或zf10↓,建立從當前行起到後10行的程式碼摺疊功能。                   10zf-或zf10↑,建立從當前行起到之前10行的程式碼摺疊功能。                   在括弧處zf%,建立從當前行起到對應的匹配的括弧上去((),{},[],<>等)。zd      刪除 (delete) 在游標下的摺疊。僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。zD     迴圈刪除 (Delete) 游標下的摺疊,即嵌套刪除摺疊。          僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。zE     除去 (Eliminate) 視窗裡“所有”的摺疊。          僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。

九、vim標籤命令

:tabnew 開啟新標籤

gt 標籤間轉換

十、vim選塊命令

選定塊後

shift+<向左移,shift+>向右移

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.