兩篇很牛的vim使用技巧

2022-03-06 12:07:58 字數 3039 閱讀 2398

摘自:

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 其他命令

用/查詢單詞後,n可以跳到下乙個,n則是上乙個,:nohls可以取消高亮

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

7. 修改文字

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

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

0到行首,$到行尾。

8. 函式間跳轉

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

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

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

9. 視窗命令

i   向上搜尋,補全乙個詞

i   向下搜尋,補全乙個詞

i 補全一行。

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

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

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

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

11. 注釋整塊內容

vim使用技巧兩篇

關鍵字 vim 編輯器 第一篇 1.本文的目標是提供一些vim的使用技巧,利用這些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是現在基本上都是用vim了。3.本文閱讀物件是了解了vim的基本操作,而希望高效地利用vim進行工作的人。熟練使用vim的人自然不必細讀,如果能留下您的寶貴意...

推薦兩篇 Grails 實戰的好文

第一篇 a pattern to simplify grails controllers 利用模式來簡化grails的控制器。借助 groovy 的閉包特性,讓 controller 的 更加精煉和易測試。不過,作者只給出了乙個類腳手架的模板 為利用此模式簡化 指出乙個方向。如何結合自己專案的實際情...

推薦兩篇 蟻族 的自述文章

一名漂泊在外的蟻族寫給農民工父親的懺悔信 爸,昨天你問我存了多少錢,我說存了有八千多。你有點不高興,說工作都大半年了,三千二乙個月,怎麼也得存一萬五,我沒敢吱聲。爸,我是真的不敢說,其實我現在卡里只有五百塊不到,房租三百塊過幾天也要交了,桌上只有幾袋速食麵,唯一拿得出檯面的估計就是我前天買的漫畫書 ...