柚子快報(bào)邀請(qǐng)碼778899分享:linux vim 常見操作
柚子快報(bào)邀請(qǐng)碼778899分享:linux vim 常見操作
Vim 工作模式
1、vim 三種基本的工作模式
vim有三種基本的工作模式,分別為:命令模式、末行模式、編輯模式。關(guān)于這三種工作模式的介紹,請(qǐng)見下文。
1.1、命令模式
使用vim打開文件之后,首先進(jìn)入命令模式,它是vim編輯器的入口模式。在命令模式下,通過使用命令對(duì)文件進(jìn)行常規(guī)的編輯操作,例如:復(fù)制、粘貼、刪除、定位、翻頁等等。
1.2、末行模式
末行模式是vim編輯器的出口,要退出vim,必須要在末行模式下。在末行模式下,執(zhí)行退出文件、保存并退出文件等操作。
1.3、編輯模式
正常的編輯文字模式。
2、三種模式的切換操作
(1)vim打開一個(gè)文件進(jìn)入的就是命令模式,另外兩種模式需要回到命令模式才能進(jìn)入彼此。
(2)在命令模式中按下i,I,o,O,a,A,r,R任何一個(gè)字母后進(jìn)入編輯模式,進(jìn)入編輯模式后,下方會(huì)出現(xiàn)INSERT或者REPLACE字樣,按Esc鍵退出編輯模式,回到命令模式。
(3)在命令模式中按下:,/,?中任意一個(gè)即可進(jìn)入末行模式,末行模式可以對(duì)文檔或者vim環(huán)境進(jìn)行操作,例如查找、讀取、存盤、替換、離開、顯示行號(hào)等。
3、三種模式的切換示意圖
如上圖所示,我們只要能靈活運(yùn)用三個(gè)鍵:推出鍵esc、冒號(hào)鍵:、字母鍵i,就可以從容地在vim的三種模式中自由切換。
Vim 保存和退出命令
1、Vim 保存命令
1.1、:w命令,普通保存
英文全稱是:write。這個(gè)命令的作用是把內(nèi)存緩沖區(qū)中的數(shù)據(jù)寫到啟動(dòng)vim時(shí)指定的文件中。注意,此命令保存編輯后的文件內(nèi)容,但不退出vim編輯器。
1.2、:w!命令,強(qiáng)制保存
強(qiáng)制保存命令。如果原有文件的訪問權(quán)限不允許寫入文件,例如原有的文件為只讀文件,則可使用這個(gè)命令強(qiáng)制寫入。
2、Vim 保存并退出命令
2.1、:wq命令,保存并退出
英文全稱是:write & quit。這個(gè)命令的作用是把內(nèi)存緩沖區(qū)中的數(shù)據(jù)寫到啟動(dòng)vim時(shí)指定的文件中,然后退出vim編輯器。
備注:另外一種替代的方法是用ZZ命令。ZZ常用于描述睡覺的呼嚕聲,指人睡著了。用在vim中,也很形象貼切,退出vim編輯器讓文件“睡覺”,不再打擾它。
2.2、:wq!命令,強(qiáng)制保存并退出
強(qiáng)制保存文件內(nèi)容后退出vim編輯器。這個(gè)命令的作用是把內(nèi)存緩沖區(qū)中的數(shù)據(jù)強(qiáng)制寫到啟動(dòng)vim時(shí)指定的文件中,然后退出vim編輯器。
3、Vim 退出命令
3.1、:q命令
在未做任何編輯處理而準(zhǔn)備退出vim時(shí),可以使用此命令。如果已做過編輯處理,則vim不允許用戶使用“:q”命令退出,同時(shí)還會(huì)輸出下列警告信息:No write since last change (:quit! overrides)
3.2、:q!命令
強(qiáng)制退出vim編輯器,放棄編輯處理的結(jié)果。如果確實(shí)不需要保存修改后的文件內(nèi)容,可輸入“:q!”命令,強(qiáng)行退出vim編輯器。
Vim 翻頁命令
提示:vim 翻頁命令需要處于命令行模式。vim 三種模式的切換很簡(jiǎn)單,我們只要能靈活運(yùn)用三個(gè)鍵:推出鍵esc、冒號(hào)鍵:、字母鍵i,就可以從容地在vim的三種模式中自由切換。更多介紹可以參考:《Vim 工作模式》
當(dāng)我們使用vim編輯器查看腳本時(shí),按上下鍵查看文檔內(nèi)容,這種工作方式效率很低。尤其是遇到突發(fā)情況,掌握vim的翻頁快捷鍵十分有利于工作的開展。vim的翻頁快捷鍵命令如下所示:
1、翻整頁命令
Ctrl + f 鍵 (f 的英文全拼為:forward) Ctrl + b 鍵 (b 的英文全拼為:backward)
2、翻半頁命令
Ctrl + d 鍵 (d 的英文全拼為:down) Ctrl + u 鍵 (u 的英文全拼為:up)
3、定位到頁眉和頁腳
直接查看該腳本的第一行,請(qǐng)輸入:0,然后回車即可;直接查看該腳本的最后一行,請(qǐng)輸入:$,然后回車即可。
這里是引用
備注:$ 常用于表示結(jié)尾的含義。
Vim 查找與替換
vim有強(qiáng)大的字符串查找功能。我們通常在vim下要查找字符串的時(shí)候,都是輸入/或者?加上需要查找的字符串來進(jìn)行搜索,比如,想搜索user這個(gè)單詞,可以輸入 :/user 或者 ?/user,兩者的區(qū)別是前者是從上往下搜索,后者是從下往上搜索。
1、vim 查找字符串命令
1.1、從開頭查找
在命令模式下,輸入 :/ + 你要查找的字符,按下回車,可以看到vim把光標(biāo)移動(dòng)到該字符串處。
1.2、從結(jié)尾處查找
在命令模式下,輸入 :? + 你要查找的字符,按下回車,就能搜索到字符串或字符。
備注:值得注意的是“/”是向下查找,而“?”是向上查找,而在鍵盤定義上“?”剛好是“/”的上檔符。
1.3、上下匹配
默認(rèn)情況下,搜索會(huì)定位到一個(gè)離當(dāng)前光標(biāo)最近的一個(gè)匹配結(jié)果。如果我們想要轉(zhuǎn)到下一個(gè)/上一個(gè)搜索結(jié)果,請(qǐng)使用以下按鍵:
n – 尋找下一個(gè)匹配結(jié)果
N – 尋找上一個(gè)匹配結(jié)果
1.4、關(guān)閉高亮
搜索后,我們打開別的文件,發(fā)現(xiàn)也被高亮了,怎么關(guān)閉高亮?
命令模式下,輸入:nohlsearch,當(dāng)然,也可以簡(jiǎn)寫為:noh。
2、vim 字符串替換
查找和替換是任意一款文本編輯器的一組常見和必備功能。Vim 使用以下命令結(jié)構(gòu)實(shí)現(xiàn)替換功能。
替換
:s/old/new - 用new替換當(dāng)前行第一個(gè)old。
:s/old/new/g - 用new替換當(dāng)前行所有的old。
:n1,n2s/old/new/g - 用new替換文件n1行到n2行所有的old。
:%s/old/new/g - 用new替換文件中所有的old。
:%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首。
:%s//xxx/g?在每一行的行尾插入xxx,/xxx/g?在每一行的行尾插入xxx,表示行尾。
所有替換命令末尾加上c,每個(gè)替換都將需要用戶確認(rèn)。 如:%s/old/new/gc,加上i則忽略大小寫(ignore)。
g:全局替換 gc:在每次更換之前要求確認(rèn) gn:忽略替換功能并突出顯示查找結(jié)果。
Vim 保存文件
1、vim保存文件并設(shè)置文件名
我們有時(shí)候會(huì)直接輸入vim命令進(jìn)入編輯模式,當(dāng)編輯完文件后,保存時(shí)會(huì)提示:E32: No file name
原因就是我們進(jìn)入時(shí)沒有輸入文件名,退出時(shí)就報(bào)錯(cuò)了。如何保存未命名vim的文件呢?請(qǐng)看下面的介紹:
第一步:輸入完成后按下esc退出輸入模式
第二步:從輸入模式切換到末行模式,即輸入:w + 文件路徑及文件名稱,然后回車。例如::w test.txt
提醒:vim不會(huì)自動(dòng)建立不存在的文件夾,需要我們手動(dòng)建立。
2、vim設(shè)置默認(rèn)路徑
如上所示,輸入 :w test.txt 之后,默認(rèn)保存在當(dāng)前的目錄,可以設(shè)置保存到已定義的路徑。
需要在_vimrc文件中添加:
exec "cd " . fnameescape("/usr/tom/")
/usr/tom/換成自己所需的路徑,這樣在vim中新建文件后直接用命令 :w + 文件名 就可以自動(dòng)保存到已定義的路徑。
Vim文件刪除與清空
dd 命令
1.單行刪除
在命令模式下 dd命令可以快捷刪除光標(biāo)所在行, d+上下方向鍵,刪除光標(biāo)所在行和上下一行 , d+左右方向鍵 ,刪除光標(biāo)左右一個(gè)字符
2.文件多行刪除
d命令是Vim中非常常用的命令,它可以刪除行、刪除字符、剪切等。當(dāng)我們需要清空一個(gè)文件的內(nèi)容時(shí),可以使用dd命令來實(shí)現(xiàn)。
多行刪除
:1,3d
刪除1至3行 內(nèi)容
刪除當(dāng)前行之前的所有行
:1,.-1d
刪除當(dāng)前行之后的所有行
:.+1,$d
刪除當(dāng)前行之后的所有行
:.+1,$d
刪除包含text關(guān)鍵字的行,中/reg/ 是正則表達(dá)式
:g/text/d
刪除以#開的的注釋內(nèi)容。
:g/^#/d
3.文件內(nèi)容刪除
實(shí)現(xiàn)文件內(nèi)容的清空 1,$d
:1,$d
以上命令的含義是:將1行到最后一行的內(nèi)容全部刪除,即清空整個(gè)文件的內(nèi)容。在Vim中,
表示最后一行的位置。
?
?
或者
1
,
表示最后一行的位置。 **或者1,
表示最后一行的位置。??或者1,dG**
:1,$dG
dG命令的含義是:刪除光標(biāo)所在行到最后一行的內(nèi)容,通過將光標(biāo)移動(dòng)到第一行來達(dá)到清空整個(gè)文件的效果。 或者%d
:%d
%表示文件中的所有行,%d刪除所有航 或者命令行dG 按esc鍵后,先按gg(到達(dá)頂部),然后dG
文件操作撤銷
在命令行模式下文件操作的撤銷與恢復(fù)通過快捷鍵操作 u 撤銷上一步的操作 Ctrl+r 恢復(fù)上一步被撤銷的操作
文件內(nèi)容的選擇、粘貼、復(fù)制、剪切
文件粘貼復(fù)制
在命令行模式下 全部復(fù)制:按esc鍵后,先按gg,然后ggyG ,群不刪除ggdG 全選高亮顯示:按esc鍵后,先按gg,然后ggvG或者ggVG 粘貼:p,在光標(biāo)后一個(gè)單詞位置粘貼 , 如果粘貼板上沒有內(nèi)容 p為新增一空行 , dd為刪除光標(biāo)所在行,yy為新增一行
單行復(fù)制:按esc鍵后, 然后yy 單行刪除:按esc鍵后, 然后dd
復(fù)制多行 如果需要復(fù)制多行,可以使用 y 與移動(dòng)命令結(jié)合使用。比如我們需要復(fù)制從當(dāng)前行起三行,則可以使用如下命令 在命令行模式下,輸入
3yy
其中 3yy 表示復(fù)制當(dāng)前行及其下面兩行
如果需要復(fù)制整個(gè)文件,可以使用 y 命令配合 % 符號(hào)使用。
:%y
其中 :% 表示選擇整個(gè)文件,y 表示復(fù)制選中的行。
文件粘貼復(fù)制方式二
Vim中的復(fù)制粘貼操作
需要指令:
v: 進(jìn)入Visual模式
gg: 光標(biāo)移動(dòng)到文本第一行
G: 光標(biāo)移動(dòng)到文本的最后一行
y: 復(fù)制到vim寄存器中,非windows系統(tǒng)剪貼板。
p: 粘貼
操作步驟
1、 復(fù)制粘貼指定文本 進(jìn)入Vim編輯器,鍵入 v 進(jìn)入Visual模式 移動(dòng)光標(biāo)選中需要復(fù)制的內(nèi)容。 鍵入 y 復(fù)制,左下角會(huì)顯示 “… line yanked” 表示復(fù)制成功 之后在vim內(nèi)鍵入 p 即可粘貼內(nèi)容。
2、 全選復(fù)制
進(jìn)入Vim編輯器,按 v 進(jìn)入Visual模式。 鍵入 gg 到達(dá)文本第一行。 鍵入 G 到達(dá)文本最后一行并選中所有文本。 鍵入 y 即可復(fù)制到寄存器中。 鍵入 p 即可粘貼寄存器中的內(nèi)容。
注意: Vim中 ‘y’ 指令表示復(fù)制到寄存器中,非windows剪貼板。無法使用 "Ctrl v"在windows系統(tǒng)中粘貼,只能使用 p 指令在Vim編輯器中粘貼。
文件剪切
d與y命令基本類似,所以兩個(gè)命令用法一樣,包括含有數(shù)字的用法. d 剪切選定塊到緩沖區(qū); dd 剪切整行 d^ 剪切至行首 d$ 剪切至行尾 dw 剪切一個(gè)word 單詞 dG 剪切光標(biāo)所在行至檔尾
vim文件內(nèi)容縮進(jìn)
>命令是Vim中的縮進(jìn)命令,可以用來對(duì)一行或多行的內(nèi)容進(jìn)行縮進(jìn)。當(dāng)對(duì)一個(gè)空文件使用>命令時(shí),會(huì)清空文件內(nèi)容并進(jìn)入插入模式。
:>
以上命令的含義是:對(duì)當(dāng)前行進(jìn)行縮進(jìn)
視圖模式下的文件粘貼、復(fù)制、替換、刪除
在末行模式下按鍵v 進(jìn)入視圖模式 在 Vim 視圖模式下,你可以使用以下命令來進(jìn)行復(fù)制、粘貼、替換和刪除操作:
復(fù)制(yank)文本: y:復(fù)制光標(biāo)所在的字符。 yw:復(fù)制光標(biāo)所在位置的單詞。 yy 或 Y:復(fù)制光標(biāo)所在的整行。
y{motion}:根據(jù)指定的移動(dòng)命令復(fù)制文本(例如,y$ 復(fù)制從光標(biāo)位置到行尾的內(nèi)容)。
粘貼(put)文本: p:在光標(biāo)位置之后粘貼文本。 P:在光標(biāo)位置之前粘貼文本。 替換(replace)文本: r:替換光標(biāo)所在位置的字符。 R:進(jìn)入替換模式,連續(xù)輸入的文本將替換原有文本。 刪除(delete)文本: d:刪除命令,可以和移動(dòng)命令組合(如 dw 刪除一個(gè)單詞,dd 刪除一行)。 d{motion}:根據(jù)指定的移動(dòng)命令刪除文本(例如,d$ 刪除從光標(biāo)位置到行尾的內(nèi)容)。
# 復(fù)制單個(gè)字符
yl
# 復(fù)制兩個(gè)單詞
y2w
# 復(fù)制當(dāng)前行
yy
# 刪除到行尾的內(nèi)容
d$
# 刪除到行首的內(nèi)容
d^
# 替換當(dāng)前字符
rX
# 進(jìn)入替換模式
Rnew text
vimrc配置文件簡(jiǎn)介
1、.vimrc是什么?
.vimrc是vim的配置文件,vim編輯器相關(guān)的所有功能開關(guān)都可以通過.vimrc文件進(jìn)行設(shè)置。
備注:文件名中的 “rc” 是出自 “run commands”。最初的源頭是麻省理工學(xué)院在 1965 年發(fā)展的 CTSS 系統(tǒng),其中有一個(gè)從檔案中取出一系列命令來執(zhí)行的功能,其被稱為 run commands,這種檔案又稱為一個(gè) runcom?,F(xiàn)在多引申為配置文件之意。
2、.vimrc存放路徑
.vimrc配置文件分系統(tǒng)配置和用戶配置兩種。系統(tǒng).vimrc配置文件存放在vim的安裝目錄,默認(rèn)路徑為/usr/share/vim/.vimrc。用戶.vimrc配置文件存放在用戶主目錄下~/.vimrc。
注意:用戶配置文件優(yōu)先于系統(tǒng)配置文件,vim啟動(dòng)時(shí)會(huì)優(yōu)先讀取當(dāng)前用戶根目錄下的.vimrc文件。所以與個(gè)人用戶相關(guān)的個(gè)性化配置一般都放在~/.vimrc中。
在系統(tǒng)命令行下,執(zhí)行 vim --version 命令可以查看當(dāng)前 vim 所使用的配置文件的保存路徑,如下圖所示: 在上面,我們看到列出了幾個(gè) vimrc 文件,有一個(gè)系統(tǒng)的 vimrc 文件,還有用戶的 vimrc 文件,還有2nd user vimrc file。另外,出于和vi兼容的目的,vim也支持vi的exrc配置文件。
vim 啟動(dòng)時(shí),會(huì)先嘗試執(zhí)行系統(tǒng)的 vimrc 文件,然后將按照上述順序查找用戶 vimrc,并使用所找到的第一個(gè)用戶 vimrc 中的配置,忽略其余的用戶 vimrc。
如果使用 vim -u filename 命令來啟動(dòng) vim,則會(huì)用你指定的 filename 作為 vim 的配置文件(在調(diào)試你的 vimrc 時(shí)有用);如果用 vim -u NONE 命令啟動(dòng) vim,則不讀取任何 vimrc 文件,當(dāng)你懷疑你的 vimrc 配置有問題時(shí),可以用這種方式跳過 vimrc 的執(zhí)行。
3、.vimrc入門簡(jiǎn)介
默認(rèn)情況下,vim編輯器里既不顯示行號(hào),也沒有語法高亮度、智能縮進(jìn)。為了方便使用,基本的vim配置選項(xiàng)一般都會(huì)包括:
顯示行號(hào)
set number
突出顯示當(dāng)前列
set cursorcolumn
顯示括號(hào)匹配
set showmatch
設(shè)置縮進(jìn),設(shè)置Tab長度為4空格
set tabstop=4
設(shè)置注釋 在vimrc中,雙引號(hào)開頭的行,將被當(dāng)作注釋忽略。
柚子快報(bào)邀請(qǐng)碼778899分享:linux vim 常見操作
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。