vim使用技巧兩篇

2021-08-25 16:01:42 字數 4556 閱讀 5709

關鍵字:vim ,

編輯器**:

第一篇:

1. 本文的目標是提供一些vim的使用技巧,利用這些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是現在基本上都是用vim了。

3. 本文閱讀物件是了解了vim的基本操作,而希望高效地利用vim進行工作的人。熟練使用vim的人自然不必細讀,如果能留下您的寶貴意見,本人將感激不盡。

1. 選定文字 / 拷貝貼上

v為可視模式,可以選定多行。選定多行之後,可以用yy或者dd等等進行拷貝和剪下。

p 是貼上

y 和d 可以直接拷貝或者剪下選定的內容

yw是拷貝乙個單詞

如果要複製整行的最簡單辦法就是v,y,p 就行了

v是可以選定一行任意個字元的,v是行選定的,一次一整行,然後通過向下或向上移動游標而選定多行。

對於v選定的,拷貝後就是這麼多,選多少就拷貝多少,而v選定的,貼上的話會自動換到下一行

命令模式下,也是塊選定,不過是列塊選定

2. 摺疊**

可以zf進行摺疊, 用zo開啟摺疊,也可以方向鍵向右開啟摺疊,zc 關閉摺疊(只要在被摺疊的塊中的任乙個語句就行)

3. 縮排**

《是左縮排, >是右縮排

按v選定後按=就是自動格式化**,自動縮排,內部的遞迴的縮排都做到了

行左移<<,行右移》,該命令用於調整原始碼縮排格式簡便快速。

4. 移動游標

%是從大括號的開始移動到大括號的結束位置

:後邊加行號就是跳到這一行

游標返回到以前的位置。相當於游標移動的「撤銷」

游標返回到後來的位置。相當於游標移動的「恢復」

5. 多檔案編輯 / 緩衝區命令

vim下每乙個開啟的檔案對應乙個緩衝區(buffer)。

多檔案編輯會有兩種情形,一種是在進入 vim 前所用的引數就是多個檔案(這種情形稱為 argument list)。另一種情形是進入 vim 後另外再開其它的檔案(稱為 buffer list)。不過都可以統稱為buffer。

5.1 開啟檔案

vi flname1 flname2… flnamen

將多個檔案調入緩衝,是 argument list。

:e filename

這是在進入 vim 後,在不離開 vim 的情形下再開其它檔案,只要您要編輯的檔案是在目前目錄,tab 補全鍵還是可以使用。是buffer list。

注意::e 或者:new 或者:split 後邊可以跟目錄,這樣就可以在目錄下慢慢找要開啟的檔案了

5.2 緩衝區跳轉

:n   編輯下乙個檔案。

:2n 編輯下二個檔案。

:n   編輯前乙個檔案。注意,這種用法只能用於 argument list 的情形。

:rew 回到首檔案

:args 檢視當前編輯緩衝檔案狀態

:e# 或 ctrl-^   編輯前乙個檔案,用於兩檔案互相編輯時相當好用。這種用法不管是 argument list 或buffer list 檔案間皆可使用。 使用ctrl-^ 命令更便捷,但如終端型別不正確該功能將無效。

用:ls來顯示緩衝區中的檔案,編號後邊有#的代表是前乙個檔案,可以通過:e#來進入,有%a的代表是當前檔案,什麼也沒有的可以通過:bn來進入,這裡的n代表檔案編號。

:b檔名或編號   移至該檔案。

在 :ls 中就會出示各檔案的編號,這個編號在未離開 vim 前是不會變的。這個指令 elvis 也是可以使用。當然 :e#編號 也是可以的,這樣的用法則是所有 vi clone 都通用了。

在 buffers 中,減號 - 表示這個 buffer 並未載入,不過,不必擔心,載入相當快速的。加號 + 表示這個 buffer 已經修改過了。

:bn   buffer next。這裡的n代表字母n

:bl   buffer last。

以上兩個指令 elvis 不適用。

如果您是使用 vim 的 gui,那就在選單上就會有 buffers 這個選項,可以很容易的知道及移動各buffer 間。

5.3 移除緩衝區

:bd(elete)   buffer 在未離開 vim 前是不會移除的,可使用這個指令移除。其實移除它幹什麼呢?vim是您在叫用時才會載入的,因此這些 buffers 並不是像 cache 一般要佔記憶體的。

5.4 重新編輯

放棄一修改過的檔案,重新編輯。

(1)使用命令 :q!強行退出後再vi flname重新進入。

(2)使用命令 :e!強行重編輯更便捷。這樣也是會開啟檔案,但會放棄目前編輯檔案的改變,否則如果檔案已有變動,vim 預設是不讓您隨便離開的。:e! 後不接什麼的話,代表捨棄一切修改,重新載入編輯中檔案。

5.5 其他命令

:files 或 :buffers 或 :ls   會列出目前 buffer 中的所有檔案。

在 elvis 中可使用 :b 來叫出 buffers。 

:f 或 ctrl-g   顯示目前編輯的檔名、是否經過修改及目前游標所在之位置。

:f 檔名   改變編輯中的檔名。(file)

:r 檔名   在游標所在處插入乙個檔案的內容。(read)

:35 r 檔名   將檔案插入至 35 行之後。

gf   這是 vim 的特殊開啟檔案的方法,會開啟游標所在處的 word 為名的檔案,當然,這個檔案要在當前目錄內,否則會建立新檔案。

6. 查詢命令

查詢時,:set ignorecase」項讓vim忽略大小寫,「:set noignorecase」 來關閉這項功能。

7. 修改文字

cw:刪除乙個單詞並進入插入模式,cc:刪除一行並進入插入模式。

r:然後輸入的字母將替換當前字母並保持命令模式,r則是不停的替換(乙個挨著乙個)。

0到行首,$到行尾。

8. 函式間跳轉

ctrl+]和ctrl+t分別是查詢函式的定義和返回,好像需要ctag的支援

i   跳轉到游標所指識別符號的定義行,是開啟乙個新的小視窗顯示,記住要加個i,最好是找自己專案下的檔案,否則找庫函式的話還不如man.

大寫 k        看游標所指識別符號的 man 幫助頁

9. 視窗命令

= ctrl+w

:split 檔名 同時在乙個頁面顯示多個檔案的內容,類似多視窗,用切換當前視窗

f   切分顯示游標在處的檔名,vim 會在 path 中搜尋該檔名,比如常用它開啟 #include 語句中的檔案

_   當同時開啟幾個檔案時,按 _ 使當前視窗最大化

用ctrl-w命令指定游標移動: 

ctrl-w +       擴大視窗

ctrl-w -       縮小視窗

ctrl-w h       移動到視窗左邊

ctrl-w j       移動到視窗下邊

ctrl-w k       移動到視窗上邊

ctrl-w l       移動到視窗右邊

等於是按下後,鬆開鍵盤,再按下乙個命令就可以了.

如果要關閉分割視窗可以用:close,剩下只有乙個視窗的話就不能關了。

多視窗是split,像用e開啟多個檔案是將檔案放在緩衝區中。

10. 自動完成

i   向上搜尋,補全乙個詞

i   向下搜尋,補全乙個詞

i 補全一行。

比如你寫過一行 for (int i = 0; i < 100; i++),你想再寫一模一樣的一行,只要輸入 for即可。如果補全出來的不是你想要的那一行,你可以按 或 選擇上乙個或下乙個匹配行i   在檔案系統中搜尋,補全乙個檔名

如果按 或 補全乙個詞,在當前檔案中沒有找到匹配,vim 將搜尋 #include 語句中的檔案,而檔案的位置將在 path 中搜尋。

i   把上一行對應列的字元抄下來

i   把下一行對應列的字元抄上來,這兩個都可以一直按下去,到了行尾自己會停的.

11. 注釋整塊內容

注釋塊的方法:

選定要注釋掉的行   i   //   esc 

i之後輸入的東西就是插入到選定的行前邊的,直至esc.

要去掉注釋的辦法:選定注釋符//,然後d 

列塊選定後i是在前邊都插入,a是在後邊都插入

是按列塊模式的選定,是行選定,v是普通選定

12. 其他命令

u可以撤銷上一步操作, ctrl+r可以恢復

i命令執行乙個普通模式的命令,執行完畢後回到插入模式,不用多次esc

i後續字元   輸入特殊的 ascii 字元或鍵。

.        在游標當前位置處重複上一次操作

:!命令列         執行一條外部命令

第二篇:

來自:

兩篇很牛的vim使用技巧

摘自 v為可視模式,可以選定多行。選定多行之後,可以用yy或者dd等等進行拷貝和剪下。p 是貼上 y 和d 可以直接拷貝或者剪下選定的內容 yw是拷貝乙個單詞 如果要複製整行的最簡單辦法就是v,y,p 就行了 v是可以選定一行任意個字元的,v是行選定的,一次一整行,然後通過向下或向上移動游標而選定多...

採訪蔣濤兩篇

一 蔣濤 社群營銷更恰當 責任是個人 的基礎 第二屆網際網路社群大會以 口碑營銷 為主題 奇虎亮出口碑營銷的商業化方案 周鴻禕為口碑營銷公開發難江南春 豆瓣網創始人楊波稱 口碑營銷 這個詞有點矛盾 一時間,口碑營銷 成為時下業界最熱門的詞彙。什麼是口碑營銷,果真是未來趨勢嗎,是無廣告時代的來臨嗎 帶...

兩篇業餘相機評測

這就是用評測相機的代價啊,既然他們不嫌我爛,我就繼續坦然地用,坦然地寫 上次的佳能a610評測 我用的第一台數位相機是公司的佳能powershot s1 is,10倍光學變焦的特點使我此後用任何數位相機都喜歡撥弄調節杆,乙個勁地拉近距離。可惜它笨拙的身材實在不適合隨身攜帶,尤其不適合出現在小巧的女式...