vim常用操作

vim是一款強(qiáng)大的命令行編輯器。

1.進(jìn)入vim

指令 操作
vim file 打開或新建文件
vim +n file 打開文件,光標(biāo)定位到第n行
vim + file 打開文件,光標(biāo)定位到最后一行
vim +/PATTERN file 打開文件,光標(biāo)定位到第一個(gè)被PATTERN匹配到的行的行首
vim -r file 恢復(fù)上次使用vim時(shí)崩潰的文件
vim file1 file2 ... 打開多個(gè)文件

2.vim工作模式

2.1 普通模式 Normal

打開vim編輯器模式進(jìn)入命令模式,命令模式下可以進(jìn)行光標(biāo)移動(dòng)、復(fù)制、剪切、刪除、粘貼、撤銷等一系列文本操作。

從其它模式切換到命令模式,可以使用ESC鍵。

2.1.1 光標(biāo)移動(dòng)
指令 操作
j、k、h、l 上、下、左、右
w、nw、W、nW 下1/n個(gè)單詞詞首(大寫時(shí)忽略符號(hào))
control+f 向前(下)翻頁
control+b 向后(上)翻頁
control+d 向前翻半頁
control+u 向后翻半頁
gg、G 前往第一行、最后一行
ngg、nG 前往第n行
H、M、L 前往屏幕可見范圍內(nèi)最高行、中間行、最低行
nH、nL 前往屏幕可見范圍內(nèi)第n行、倒數(shù)第n行
^、$、0 行首(不含空白)、行尾、行首(含空白)
zz、zt、zb 移動(dòng)屏幕,使光標(biāo)所在行處于中間、頂部、底部
fx、Fx 將光標(biāo)移動(dòng)至本行下一個(gè)/上一個(gè)x處
control+o 將光標(biāo)移動(dòng)到較舊的歷史位置
control+i 將光標(biāo)移動(dòng)到較新的歷史位置
2.1.2 刪除、剪切、復(fù)制

x - 按字符刪除/剪切
d - 按行刪除/剪切

指令 操作
x、nx 剪切光標(biāo)起始處的1個(gè)、n個(gè)字符
d$ 刪除/剪切光標(biāo)至行末
d^ 刪除/剪切光標(biāo)至行首(不包括行首空白 )
d0 刪除/剪切光標(biāo)至行首(包括行首空白)
dw 刪除/剪切光標(biāo)至詞尾(包括空格)
de 刪除/剪切光標(biāo)至詞尾(不包括空格)
db 刪除/剪切光標(biāo)至詞首
dd 刪除/剪切光標(biāo)所在處的行
ndd 刪除/剪切光標(biāo)所處的行起始的共n行
c c指令 = d指令 + i(刪除 + 進(jìn)入INSERT模式)
y y指令類似d指令,只不過刪除/剪切動(dòng)作替換為復(fù)制
"ay、"by、"cy... 復(fù)制內(nèi)容到a、b、c剪切板(緩沖區(qū)))
2.1.3 替換字符
指令 操作
r、nr 將光標(biāo)所在處的1個(gè)、n個(gè)字符替換成下次鍵盤輸入的字符
2.1.4 粘貼緩沖區(qū)的內(nèi)容

p(小寫):緩沖區(qū)中的內(nèi)容如果為整行,則粘貼在當(dāng)前光標(biāo)所在行的下方;否則,則粘貼至當(dāng)前光標(biāo)所在處的后方;
P(大寫):緩沖區(qū)中的內(nèi)容如果為整行,則粘貼在當(dāng)前光標(biāo)所在行的上方;否則,則粘貼至當(dāng)前光標(biāo)所在處的前方;
"ap/"aP、"bp/"bP、"cp/"cP...:從a、b、c...剪切板(緩沖區(qū))粘貼內(nèi)容;

2.1.5 縮進(jìn)與格式化
指令 操作
>> 光標(biāo)所在行向右縮進(jìn)
<< 光標(biāo)所在行向左縮進(jìn)
VISUAL模式下,選取行,按= 格式化所選行,自動(dòng)處理縮進(jìn)
2.1.6 undo & redo
指令 操作
u、nu undo,撤銷此前的1個(gè)、n個(gè)操作
U 撤銷一行中的所有操作
control+r redo
2.1.7 重復(fù)執(zhí)行
指令 操作
. 重復(fù)執(zhí)行上一次操作

2.2 輸入模式 Insert

從命令模式進(jìn)入輸入模式可以使用i、a、o、IA、O6個(gè)指令。

指令 操作
i insert,在光標(biāo)所在處輸入
a append,在光標(biāo)所在處后方輸入
o 在光標(biāo)所在處的下方打開一個(gè)新行
I 在光標(biāo)所在行的行首輸入
A 在光標(biāo)所在行的行尾輸入
O 在光標(biāo)所在處的上方打開一個(gè)新行

2.3 可視化模式 Visual

指令 操作
v 按字符選定
V VISUAL LINE 按行選定
Ctrl + v VISUAL BLOCK 按列選定
  • 進(jìn)入VISUAL模式后,可以結(jié)合命令模式下的光標(biāo)移動(dòng)操作選定內(nèi)容;
  • 選定內(nèi)容后,可以再使用d(刪除)、c(刪除并進(jìn)入INSERT模式)、y(復(fù)制)等指令。

2.4 命令模式 Command

末行模式提供了VIM內(nèi)建的命令行接口,可以對(duì)文本進(jìn)行查找、替換,設(shè)置vim編輯環(huán)境,保存和退出文件。

2.4.1 退出vim
指令 操作
:q 直接退出
:q! 強(qiáng)制退出
:wq 保存并退出
:wq! 強(qiáng)制保存并退出
2.4.2 末行命令限定
  • 末行命令限定即在限定命令在指定的行執(zhí)行,也可以單獨(dú)使用來移動(dòng)光標(biāo)。
指令 操作
:n 特定的第n行,例如:5即第5行
:. 當(dāng)前行
:$ 最后一行
:m,n 從第m行到第n行
:% 全文,同:1,$
:/pattern/ 從光標(biāo)所在處起始向文件尾部第一次被模式所匹配到的行
:/pat1/,/pat2/ 從光標(biāo)所在處起始,第一次由pat1匹配到的行開始,至第一次由pat2匹配到的行結(jié)束之間的所有行
2.4.3 查找
  • 查找到匹配結(jié)果后,可以使用n將光標(biāo)移到下一個(gè)匹配項(xiàng),N移到上一個(gè)匹配項(xiàng)
指令 操作
/PATTERN 從當(dāng)前光標(biāo)所在處向文件尾部查找能夠被當(dāng)前模式匹配到的所有字符串
?PATTERN 從當(dāng)前光標(biāo)所在處向文件首部查找能夠被當(dāng)前模式匹配到的所有字符串
:/str 正向搜索,將光標(biāo)移動(dòng)到下方第一個(gè)包含str的行
:?str 反向搜索,將光標(biāo)移動(dòng)到上方第一個(gè)包含str的行
2.4.4 替換 s
  • 命令后選項(xiàng):g 單行內(nèi)所有匹配項(xiàng)、 i 忽略大小寫、c 確認(rèn)是否替換
  • 關(guān)鍵詞 old 替換為 new
  • 分隔符/可以換成其它非常用字符,如@#等
指令 操作
:s/old/new 將光標(biāo)所在行第一個(gè) old 替換為 new
:s/old/new/g 將光標(biāo)所在行所有 old 替換為 new
:%s/old/new/gc 全文執(zhí)行替換,詢問是否替換
:3,10s/old/new/gic 將第3行到第10行內(nèi)容替換,忽略大小寫,且每個(gè)詢問是否替換
2.4.5 獲取幫助
指令 操作
:help 查看幫助全文
:help subject 查看特定幫助
2.4.6 其它操作
指令 操作
:noh 取消高亮
2.4.7 執(zhí)行shell命令
指令 操作
:!commond 末行模式下還可以不退出vim
2.4.8 設(shè)置vim工作特性
  • 在末行模式下的設(shè)定,僅對(duì)當(dāng)前vim進(jìn)程有效;如果希望永久有效,可以修改/etc/vimrc(全局)、~/.vimrc(個(gè)人)。
指令 操作
:set number, set nu 顯示行號(hào)
:set nomber, set nonu 隱藏行號(hào)
:set ai 啟用自動(dòng)縮進(jìn)
:set noai 禁用自動(dòng)縮進(jìn)
:set hlsearch 啟用搜索高亮
:set nohlsearch 禁用搜索高亮
:syntax on 啟用語法高亮
:syntax off 禁用語法高亮
:set ic 啟用忽略字符大小寫
:set noic 禁用忽略字符大小寫

3.多文件操作

vim FILE1 FILE2 ...

在文件間切換:

:next  下一個(gè)
:prev  上一個(gè)
:first   第一個(gè) 
:last   最后一個(gè) 

退出所有文件:

:wqall 保存所有文件并退出;
:wall  保存所有文件
:qall  退出所有文件

4.多窗口操作

vim除了可以同時(shí)編輯多個(gè)文件,還可以以多個(gè)窗口打開文件

指令 操作
vim -o file1 file2 file3 ... 橫向分隔窗口打開多個(gè)文件
vim -O file1 file2 file3 ... 縱向分隔窗口打開多個(gè)文件
vim -p file1 file2 file3 ... 以tab標(biāo)簽頁的方式打開多個(gè)文件
:e file 在vim窗口中打開新的文件
:new file 縱向分割窗口并打開新文件,不指定文件時(shí)打開空白文件
:vnew file 橫向分割窗口并打開新文件,不指定文件時(shí)打開空白文件
:tabe、:tabnew 在新的tab頁打開文件
gt、gT 在tab頁之間進(jìn)行切換
control+w, w/h/j/k/l 在分割的窗口切換
control+w, s/v 將當(dāng)前窗口的文件分割顯示

vim自帶的練習(xí)教程:vimtutor

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一.vi的基本概念文本編輯器有很多,圖形模式下有g(shù)edit、kwrite等編輯器,文本模式下的編輯器有vi、vim...
    一線碼農(nóng)閱讀 814評(píng)論 0 0
  • vim是由vi發(fā)展來的一個(gè)強(qiáng)大的文本編輯器,代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用...
    dxldeng閱讀 940評(píng)論 0 1
  • 命令歷史 以:和/開頭的命令都有歷史紀(jì)錄,可以首先鍵入:或/然后按上下箭頭來選擇某個(gè)歷史命令。 啟動(dòng)vim 在命令...
    西多的大叔閱讀 344評(píng)論 0 0
  • ? vi: Visual Interface,文本編輯器? 文本:ASCII, Unicode? 文本編輯種類:行...
    尛尛大尹閱讀 326評(píng)論 0 0
  • vim定義 vim是從vi發(fā)展出來的一個(gè)文本編輯器。代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方面編程的功能特別豐富,在程序員中被...
    饑人谷_sunny閱讀 1,062評(píng)論 0 1

友情鏈接更多精彩內(nèi)容