VIM的一些有用的命令

2021-10-08 17:34:15 字數 3345 閱讀 6277

1)單行複製

在命令模式下,將游標移動到將要複製的行處,按「yy」進行複製;

2)多行複製 在命令模式下,將游標移動到將要複製的首行處,按「nyy」複製n行;其中n為1、2、3……

【yy】 複製游標所在的那一行

【nyy】 複製游標所在的向下n行

3)y 在使用v模式選定了某一塊的時候,複製選定塊到緩衝區用;

yy 複製整行(nyy或者yny ,複製n行,n為數字);

y^ 複製當前到行頭的內容;

y$ 複製當前到行尾的內容;

yw 複製乙個word (nyw或者ynw,複製n個word,n為數字);

yg 複製至檔尾(nyg或者yng,複製到第n行,例如1yg或者y1g,複製到檔尾

2、貼上

在命令模式下,將游標移動到將要貼上的行處,按「p」進行貼上

p 小寫p代表貼至游標後(下),因為游標是在具體字元的位置上,所以實際是在該字元的後面

p 大寫p代表貼至游標前(上)

整行的複製貼上在游標的上(下)一行,非整行的複製則是貼上在游標的前(後)

3、刪除

d 剪下選定塊到緩衝區;

dd 剪下整行

d^ 剪下至行首

d$ 剪下至行尾

dw 剪下乙個word

dg 剪下至檔尾

刪除一行:dd

刪除乙個單詞/游標之後的單詞剩餘部分:dw

刪除當前字元:x

游標之後的該行部分:d$

文字刪除

dd 刪除一行

d$ 刪除以當前字元開始的一行字元

ndd 刪除以當前行開始的n行

dw 刪除以當前字元開始的乙個字

ndw 刪除以當前字元開始的n個字

4、查詢

【/word】 在檔案中查詢內容為word的字串(向下查詢)

【?word】 在檔案中查詢內容為word的字串(向上查詢)

【[n]】 表示重複查詢動作,即查詢下乙個

【[n]】 反向查詢下乙個

搜尋後,我們開啟別的檔案,發現也被高亮了,怎麼關閉高亮?

命令模式下,輸入:nohlsearch 也可以:set nohlsearch; 當然,可以簡寫,noh或者set noh。

5、設定行號

如果編輯後,又想顯示行號,同樣操作按一下esc鍵,並輸入:(冒號),輸入set number ,並按回車鍵,完成後即顯示行號

6、跳到指定行

在知道所查詢的內容在檔案中的具體位置時可以使用以下命令直接定位:

跳到檔案指定行:比如跳到66行

66+g(也就是66+shift+g)

當然你可以選擇另一種跳轉方式:

命令列輸入「 : n 」 然後回車

跳到檔案第一行:gg (兩個小寫的g)

跳到檔案最後一行:shift+g (也就是g)

7、檔案上下翻轉

頁翻轉可以直接使用pgup和pgdn

向前滾動一屏:ctrl+f

向後滾動一屏:ctrl+b

向前滾動半屏:ctrl+d(向下)

向後滾動半屏:ctrl+u(向上)

向下滾動一行,保持當前游標不動:ctrl+e

向上滾動一行,保持當前游標不動:ctrl+y

當前行滾動:

當前行移動到螢幕頂部並滾動:z+enter

滾動指定行到螢幕頂部: 10z+enter(指定第十行)

當前行移動到螢幕**並滾動:z + .

當前行移動到螢幕底部並滾動:z + -

當前螢幕操作:

h:大寫h,移動到當前螢幕首行;nh移動到首行下的第n行

m:大寫m,移動到當前螢幕中間行

l:大寫l,移動到當前螢幕末行;nl移動到末行上面的第n行

8、撤銷上一步操作

【u】 撤消上乙個操作

【[ctrl] + r】 多次撤消

【.】 這是小數點鍵,重複上乙個操作

縮排:插入模式下,ctrl+shift+d 減少縮排,ctrl+shift+t 增加縮排

9、vim編輯

1、進入插入模式(6個命令)

【i】 從目前游標所在處插入

【i】 從目前游標

【a】 從當前游標所在的下乙個字元處開始插入

【a】 從游標所在行的最後乙個字元處開始插入

【o】 英文小寫字母o,在目前游標所在行的下一行處插入新的一行並開始插入

【o】 英文大寫字母o,在目前游標所在行的上一行處插入新的一行並開始插入

2、進入替換模式(2個命令)

【r】 只會替換游標所在的那乙個字元一次

【r】 會一直替換游標所在字元,直到按下[esc]鍵為止

【[esc]】 退出編輯模式回到一般模式

3、一般模式切換到命令列模式

【:w】 儲存檔案

【:w!】 若檔案為唯讀,強制儲存檔案

【:q】 離開vi

【:q!】 不儲存強制離開vi

【:wq】 儲存後離開

【:wq!】 強制儲存後離開

【:! command】 暫時離開vi到命令列下執行乙個命令後的顯示結果

【:set nu】 顯示行號

【:set nonu】 取消顯示行號

【:w newfile】 另存為

【:set fileencoding】 檢視當前檔案編碼格式

【:set fileencoding=utf-8】 設定當前檔案編碼格式為utf-8,也可以設定成其他編碼格式

【:set fileformat】 檢視當前檔案的斷行格式(dos\windows,unix或macintosh)

【:set fileformat=unix】 將當前檔案的斷行格式設定為unix格式

10、多視窗功能

【:sp [filename]】 開啟乙個新視窗,顯示新檔案,若只輸入:sp,則兩視窗顯示同乙個檔案

【[ctrl] + w + j】 游標移動到下方視窗

【[ctrl] + w + k】 游標移動到上方視窗

【[ctrl] + w + q】 離開當前視窗

11、縮排

批量縮排

將所要批量縮排的行號寫上,按照格式:「行號1,行號2>」輸入命令,如要將2至9行批量縮排乙個tab值,則命令為「2,9>」

輸入完畢後,按回車可以執行,就可以看到2至9行全部縮排了乙個tab值了,同樣的,如果要縮回來乙個tab值,則用命令「行號1,行號2<」即可

可視模式縮排

方法二是在可視模式下選擇要移動的列,操作為,esc從編輯模式退到命令模式,將游標移到需要縮排的行的行首,然後按shift+v,可以看到該行已被選中,且左下角提示為「可視」

此時,按鍵盤上的上下左右方向鍵,如這裡按向下的箭頭,選中所有需要批量縮排的行

選擇好了之後,按shift+>,是向前縮排乙個tab值,按shift+<,則是縮回乙個tab值

vim 一些有用的刪除操作

哎。如果不常用真心記不住,不過現在也能做到一看就會。vi的強大你應該了解。notepad只有去死的份。刪除操作 s r g 刪除dos方式的回車 m s 刪除行尾空白 s n1 1 刪除重複行 s pdf new.pdf 只是刪除第乙個pdf s 又是刪除多行注釋 咦?為什麼要說 又 呢?g s d...

linux一些有用的命令

查詢 find name cpp o name h find name d exec rm fr 在vi中替換 s str1 str2 g 當前行所有str2 替換 str1 1,s str1 str2 g 1,表示從第一行到最後一行。用str2 替換 str1 檢視磁碟資訊 df du sh 某一...

一些不起眼但非常有用的 Vim 命令

說起來有些慚愧,我也是最近才學到這個命令 x和下面的命令是等價的 wq都是儲存當前檔案並退出。譯者注 這兩個命令實際上並不完全等價,當檔案被修改時兩個命令時相同的。但如果未被修改,使用 x 不會更改檔案的修改時間,而使用 wq 會改變檔案的修改時間。在插入模式下,你可以使用 ctrl r 鍵然後輸入...