進(jìn)入vim編輯器
創(chuàng)新互聯(lián)是一家專業(yè)提供屏山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為屏山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
命令模式: 在這種模式下,可以通過(guò)輸入vi的命令對(duì)文件的內(nèi)容就行處理(復(fù)制,刪除,移動(dòng)等),也可以通過(guò)按光標(biāo)來(lái)移動(dòng)光標(biāo)
編輯模式: 在這種模式下,可以在光標(biāo)處輸入內(nèi)容
命令項(xiàng)模式: 在命令模式下,用戶輸入冒號(hào)后,光標(biāo)會(huì)跳到底行,然后輸入命令
命令模式: 輸入a A i I o O等命令 - 編輯模式
編輯模式: 按ESC鍵 - 命令模式
命令項(xiàng)模式: 輸入冒號(hào) - 命令項(xiàng)模式
i 在光標(biāo)前插入
a 當(dāng)前位置編輯
A 快速到達(dá)行尾并進(jìn)入編輯模式
O 在當(dāng)行上面插入一個(gè)空行并進(jìn)入編輯模式
o 在當(dāng)行下面插入一個(gè)空行并進(jìn)入編輯模式
第一行 gg
最后一行 G
移動(dòng)到100行 100gg
x: 刪除光標(biāo)處的字符 X:刪除光標(biāo)前的一個(gè)字符
d0: 刪除光標(biāo)所在行的第一個(gè)字符到當(dāng)前光標(biāo)的前一個(gè)字符的一串字符
D: 刪除從當(dāng)前光標(biāo)所在字符到當(dāng)前光標(biāo)所在行的最后一個(gè)字符的一串字符
dd: 刪除光標(biāo)所在行的所有字符/剪切當(dāng)前行
dw: 刪除從光標(biāo)處字符開(kāi)始的第一個(gè)單詞
u: 撤銷命令,一步一步撤銷
跳轉(zhuǎn)末行 G
跳轉(zhuǎn)首行 gg 跳轉(zhuǎn)到第一行
跳轉(zhuǎn)行首 I (大寫(xiě)字母)
跳轉(zhuǎn)行末 快速到達(dá)行尾并進(jìn)入編輯模式
下一行插入 o(小寫(xiě)字母o)
復(fù)制五行 5yy
刪除10行 10dd
:w 保存文件 不退出vi :wq 保存文件,退出vi :q! 不保存文件,退出vi
vim可以分為三種狀態(tài),分別是 命令行模式(command mode) 、 輸入模式(Insert mode) 和 底行模式(last line mode) ,這 3 種工作模式可隨意切換,如下圖所示。
使用vim編輯文件時(shí),默認(rèn)處于命令行模式。此模式下,可使用方向鍵(上、下、左、右鍵)或 k、j、h、i 移動(dòng)光標(biāo)的位置,還可以對(duì)文件內(nèi)容進(jìn)行復(fù)制、粘貼、替換、刪除等操作。
下圖所示是vim處于命令行模式的狀態(tài)示意圖。
在輸入模式下,vim可以對(duì)文件執(zhí)行寫(xiě)操作,類似于在Windows系統(tǒng)的文檔中輸入內(nèi)容。
使vim進(jìn)行輸入模式的方式是在命令模式狀態(tài)下輸入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具體功能下表所示),當(dāng)編輯文件完成后按 esc 鍵即可返回命令模式。
下圖所示為vim處于輸入模式模式下的示意圖。
底行模式用于對(duì)文件中的指定內(nèi)容執(zhí)行保存、查找或替換等操作。
使vim切換到底行模式的方法是在 命令行模式 狀態(tài)下按 : 鍵(注意是英文符號(hào)),此時(shí)vim窗口的左下方出現(xiàn)一個(gè) : 符號(hào),這是就可以輸入相關(guān)指令進(jìn)行操作了。
指令執(zhí)行后vim會(huì)自動(dòng)返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下圖所示為vim進(jìn)入底行模式后的狀態(tài)。
對(duì)于新手來(lái)說(shuō),經(jīng)常不知道自己處于什么模式。不論是自己忘了,還是不小心切換了模式,都可以按一次 esc 鍵返回命令行模式。如果你多按幾次 esc 鍵后聽(tīng)到"嘀————"的聲音,則代表你已經(jīng)處于命令行模式了。
打開(kāi)文件
打開(kāi)文件時(shí)光標(biāo)處于文件尾部
打開(kāi)文件時(shí),光標(biāo)定位到第幾行
字符移動(dòng)
這些移動(dòng)鍵都可以加上數(shù)字(5h:向左移動(dòng)5個(gè)字符格)
單詞移動(dòng)
行內(nèi)跳轉(zhuǎn)
行間移動(dòng)
在底行模式下,直接給出行號(hào),實(shí)現(xiàn)跳轉(zhuǎn)
用法:起始地址,結(jié)束地址 s @要替換內(nèi)容@替換后內(nèi)容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a換替換成A,全局替換
顯示取消行號(hào)
設(shè)定自動(dòng)縮進(jìn)(寫(xiě)腳本時(shí))
查找到的文本高亮顯示
語(yǔ)法高亮
/etc/vimrc :全局配置文件,永久有效
~/.vimrc :個(gè)人配置文件,每個(gè)用戶的家目錄中,若不存在,手動(dòng)創(chuàng)建
對(duì)于第一次用vim的童鞋,有幾點(diǎn)需要提醒一下:
linux下vim查找命令:
/text--查找text,按n查找下一個(gè),N查找上一個(gè)
?text--查找text(反向查找),按n查找下一個(gè),N查找上一個(gè)
*/#--查找光標(biāo)當(dāng)前的單詞,相當(dāng)于/text
:setignorecase--查找忽略大小寫(xiě)
:setnoignorecase--查找不忽略大小寫(xiě)
:nohlsearch--關(guān)閉當(dāng)前的高亮顯示,當(dāng)再次查找時(shí)恢復(fù)高亮
:setincsearch--逐步搜索模式,對(duì)當(dāng)前鍵入的字符進(jìn)行查找,不必等輸入完成
:setwrapscan--重新搜索,當(dāng)搜索到文件頭或尾時(shí),返回重新搜索
擴(kuò)展資料:
1、文件窗口:
:openfile--在當(dāng)前窗口打開(kāi)新文件
:splitfile--在新窗口打開(kāi)文件
:newfile--用新窗口打開(kāi)文件,同:splitfile
:bn--切換到下一個(gè)文件
:bp--切換到上一個(gè)文件
:args--查看當(dāng)前打開(kāi)的文件列表(當(dāng)前正在編輯的文件會(huì)用[]括起來(lái))
:e
:e\qadriveest.txt--打開(kāi)遠(yuǎn)程文件
:split--打開(kāi)一個(gè)新窗口,光標(biāo)停在頂層的窗口上
:new--打開(kāi)一個(gè)新窗口,光標(biāo)停在頂層的窗口上
:vsplit--橫向打開(kāi)窗口。
Ctrl+ww--移動(dòng)到下一個(gè)窗口
Ctrl+wj--移動(dòng)到下方的窗口
Ctrl+wk--移動(dòng)到上方的窗口
2、其他命令:
Esc/Ctrl+[--鍵入命令
:!command--執(zhí)行shell命令
:suspend/Ctrl+Z--掛起vim,回到shell,fg返回vim
:!perl-cscript.pl--檢查perl腳本語(yǔ)法,不用退出vim
:!perlscript.pl--執(zhí)行perl腳本,不用退出vim
:help--顯示幫助文檔
:helpi--顯示i的幫助文檔(:特殊鍵用,-t:啟動(dòng)參數(shù)用-)
3、編輯命令:
插入:
i--在當(dāng)前位置插入
A--在當(dāng)前行尾插入
I--在當(dāng)前行首插入
o--在當(dāng)前行后插入一行
O--在當(dāng)前行前插入一行
拷貝粘貼剪切:
yy--拷貝當(dāng)前行
2yy--拷貝當(dāng)前行開(kāi)始的2行
p--在當(dāng)前光標(biāo)后粘貼
P--在當(dāng)前行前粘貼
:1,10co20--將1-10行插入到第20行之后。
:1,$co$--將整個(gè)文件復(fù)制一份并添加到文件尾部
v--進(jìn)入選擇模式,相當(dāng)于在Windows下按住Shift選擇
V--進(jìn)入選擇模式,整行選擇
ddp--交換當(dāng)前行和其下一行
2dd--剪切當(dāng)前行之后的2行
:1,10d--將1-10行剪切
:1,10m20--將第1-10行移動(dòng)到第20行之后
替換:
ra--將當(dāng)前光標(biāo)所在字符替換為a
s/old/new/--用old替換new,替換當(dāng)前行的第一個(gè)匹配
s/old/new/g--用old替換new,替換當(dāng)前行的所有匹配
%s/old/new/--用old替換new,替換所有行的第一個(gè)匹配
%s/old/new/g--用old替換new,替換所有匹配
:10,20s/^/text/g--在第10行到第20行每行前面加上text(:3,5s/^/#/g--注釋3-5行,:3,5s/^#//g
--解除3-5行的注釋,:1,$s/^/#/g--注釋整個(gè)文檔,:%s/^/#/g--注釋整個(gè)文檔)
ddp--交換光標(biāo)所在行和下一行
移動(dòng):
h--左移一個(gè)字符(5h--左移5個(gè)字符)
l--右移一個(gè)字符(5l--右移5個(gè)字符)
k--上移一個(gè)字符(5k--上移5個(gè)字符)
j--下移一個(gè)字符(5j--下移5個(gè)字符)
w--向后移動(dòng)一個(gè)單詞(5w--向后移動(dòng)5個(gè)單詞)
b--向前移動(dòng)一個(gè)單詞(5b--向前移動(dòng)5個(gè)單詞)
e--同w,光標(biāo)停在單詞尾部
ge--同e,光標(biāo)停在單詞尾部
^--移動(dòng)到本行第一個(gè)非空白字符
0--移動(dòng)到本行第0個(gè)字符
--同0
$--移動(dòng)到行尾(3$--移動(dòng)到下面3行的行尾)
gg--移動(dòng)到文件頭(10gg--移動(dòng)到第10行首)
[[--同gg
G--移動(dòng)到文件尾(10G--移動(dòng)到第10行尾)
]]--同G
fx--移動(dòng)到本行光標(biāo)后第一個(gè)為x的字符(3fx--移動(dòng)到本行光標(biāo)后第3個(gè)為x的字符)
Fx--同fx,反向查找
:20--跳到20行行首
Ctrl+e--向下滾動(dòng)一行
Ctrl+y--向上滾動(dòng)一行
Ctrl+d--向下滾動(dòng)半屏
Ctrl+u--向上滾動(dòng)半屏
Ctrl+f--向下滾動(dòng)一屏
Ctrl+b--向上滾動(dòng)一屏
撤銷:
u--撤銷
U--撤銷對(duì)整行的操作
Ctrl+r--撤銷剛才的撤銷
刪除:
x--刪除當(dāng)前字符(3x--刪除當(dāng)前光標(biāo)開(kāi)始向后三個(gè)字符)
X--刪除當(dāng)前字符的前一個(gè)字符,同dh
dl--刪除當(dāng)前字符,同x
dh--刪除前一個(gè)字符
dd--刪除當(dāng)前行
dj--刪除上一行
dk--刪除下一行
10d--刪除當(dāng)前行開(kāi)始的10行。
D--刪除當(dāng)前字符至行尾,同d$
kdgg--刪除當(dāng)前行之前所有行(不包括當(dāng)前行)
:1,10d--刪除1-10行
:11,$d--刪除11行及以后所有的行
:1,$d--刪除所有行
J--刪除兩行之間的空行,合并兩行
退出
:wq--保存并退出
ZZ--保存并退出
:q!--強(qiáng)制退出并忽略所有更改
:e!--放棄所有修改,并打開(kāi)原來(lái)文件
:close--關(guān)閉窗口,最后一個(gè)窗口不能使用此命令,可以防止意外退出vim
:q--如果是最后一個(gè)被關(guān)閉的窗口,那么將退出vim