vim運維平常必備操做技巧(經常使用的全有)

1、說明vim

掌握vim的操做技巧能讓運維的工做事半功倍,本文將羅列出運維平常使用到的操做技巧,不太經常使用的操做,本文沒有收集,有高要求有興趣的能夠百度查閱vim專題運維

2、經常使用技巧ide

1)普通模式:移動光標的操做命令行

指令 做用
G或者(Shift+g) 光標瞬移到文件的最後一行
gg 光標瞬移到文件的第一行,命令等同於「1G」
0(數字0)或者^ 光標瞬移到當前行的行首
$ 標瞬移到當前行的行尾
b 光標瞬移到當前位置的單詞的單詞首字母處
e 光標瞬移到當前位置的單詞的單詞尾字母處
w 光標瞬移到當前位置的單詞的下一個單詞的單詞首字母處
f+字母 光標往右瞬移到指定的「字母處」,若是指定的字母有重複,則默認跳轉到從左至右的第一個
F+字母 光標往左瞬移到指定的「字母處」,若是指定的字母有重複,則默認跳轉到從右至左的第一個
num+回車鍵 光標從當前行位置向下移動num行(num是數字)
num+gg 光標移動到文件的第num行,命令等同於「num+G」
H或者(Shift+h) 光標瞬移到當前窗口最上面的那一行
M或者(Shift+m) 光標瞬移到當前窗口中間的那一行
L或者(Shift+l) 光標瞬移到當前窗口最下面的那一行
h或者← 光標向左移動一個字符
j或者↓ 光標向下移動一個字符
k或者↑ 光標向上移動一個字符
l或者→ 光標向右移動一個字符
< 光標所在的一整行向左縮進
> 光標所在的一整行向右縮進

2)普通模式:搜索與替換操做字符串

指令 做用
:/dabiaoge 從光標位置開始,向下搜索名爲dabiaoge的字符串
:?dabiaoge 從光標位置開始,向上搜索名爲dabiaoge的字符串
r 用光標選中字符,按下「r」,並輸入替換的新內容,則能夠把選中的字符修改爲新內容
n 從光標位置開始,向下重複前一個搜索動做
N 從光標位置開始,向上重複前一個搜索動做
:g/A/s//B/g 把全文符合A的內容所有替換成B,斜線都是分隔符,可用"@"和"#"代替(注意中間s後面是兩個斜線)
:%s/A/B/g 把全文符合A的內容所有替換成B,斜線都是分隔符,可用"@"和"#"代替(這個操做和「g/A/s//B/g」如出一轍的效果)
:num1,num2s/A/B/gc 在第num1行和第num2行之間尋找A,而且把所有的A替換成B(後面的gc的c表示再次肯定,若是確認就輸入y,也能夠不用c,若是直接就是g,則是不用肯定而且當即生效)

3)普通模式:複製、粘貼、刪除等操做it

指令 做用
yy 複製光標當前所在的一整行
num+yy 複製從光標所在行的這一行起向下的num行(光標所在的行爲第一行)
小p、大P 小p表示將已複製的數據粘貼到光標所在行的下一行;而大P表示將已複製的數據粘貼到光標所在行的上一行
dd 刪除當前光標所在的一整行
num+dd 刪除從光標所在行開始向下的num行(光標所在的行爲第一行)
u 撤銷(回滾)前一個執行過的操做
. 就一個點號,表示重複前一個執行過的操做

4)普通模式:平常高技巧的操做table

指令 做用
daw 刪除光標所在單詞以及單詞前的一個空格(d就是刪除的指令,aw就是光標所在單詞加上前一個空格)
gUgU 把光標所在行的一整行的小寫字母所有轉成大寫字母(本來就有的大寫字母則是忽略)
gugu 把光標所在行的一整行的大寫字母所有轉成小寫字母(本來就有的小寫字母則是忽略)
g~g~ 把光標所在行的一整行的字母大小寫互相調換,大寫變小寫,小寫變大寫
gU+t+字母 gU就是轉爲大寫的操做指令,「t+字母」就是是表示從新定義光標在這一行的位置,而這個字母就是新的光標位置,若是同一行內有多個相同字母,則默認是第一個,表示從光標如今位置開始到「指定字母」這個位置止,之間的凡是小寫的字母所有轉成大寫字母
gu+t+字母 gu就是轉爲小寫的操做指令,「t+字母」就是是表示從新定義光標在這一行的位置,而這個字母就是新的光標位置,若是同一行內有多個相同字母,則默認是第一個,表示從光標如今位置開始到「指定字母」這個位置止,之間的凡是大寫的字母所有轉成小寫字母
g~+t+字母 g~就是轉爲大小寫互掉的操做指令,「t+字母」就是是表示從新定義光標在這一行的位置,而這個字母就是新的光標位置,若是同一行內有多個相同字母,則默認是第一個,表示從光標如今位置開始到「指定字母」這個位置止,之間的全部字母大小寫互掉
Ctrl+a(快捷鍵) 把光標所在的數字加1
num+Ctrl+a 把光標所在的數字加num(num是數字,不能是負數、0還有小數,必須是正整數)

5)進入編輯模式的命令(一共就六種進入編輯模式的命令鍵)class

指令 做用
i 在當前光標所在處開始進入編輯模式
a 在當前光標所在處的下一個字符處開始進入編輯模式
I 在當前光標所在行的行首的第一個非空格符處開始進入編輯模式(與A正好相反)
A 在當前光標所在行的行尾最後一個字符處開始進入編輯模式(與I正好相反)
O 在當前光標所在行的上一行插入新的一行(也就是把當前光標所在的行下移一行,可是光標還在這一行,而且光標移動到行首)
o 不是數字0,是字母o,表示在當前光標所在行的下一行插入新的一行(與O正好相反)
Esc 退出編輯模式,切回到命令模式

6)命令行模式的命令可視化

指令 做用
:wq或者x 退出並保存
:wq!或者x! 退出並強制保存,「!」爲強制的意思
:q! 強制退出,但不保存
:num1,num2 w filename 將第num1行到第num2行的內容保存到filename這個文件(filename文件無須提早建立)
:num1,num2 co num3 將第num1行到第num2行的內容複製到第num3行的下面
:num1,num2 m num3 將第num1行到第num2行的內容移動(剪切)到第num3行的下面
:!任意命令 表示暫時離開vim頁面,轉到執行的那個命令的頁面,例如:!ls /root
:set nu 全部行都顯示行號
:set nonu 取消行號(與「set nu」相反)
:vs filename 以垂直分屏的方式顯示,會左右顯示當前文件和filename文件的內容
:sp filename 以水平分屏的方式顯示,會上下顯示當前文件和filename文件的內容
:,$d 注意最前面有個逗號,表示刪除當前光標所在行以及後面的全部行(光標所在的那一行也刪除)
:num,.d 注意num和d之間有個逗號和點,表示刪除第num行到光標所在行的內容(光標所在的那一行也刪除)

7)可視化模式百度

.......... ..........
可視化模式類型分爲三種字符 可視化、行可視化、塊可視化
在普通模式下: 按v(小寫),進入字符可視化
按V(大寫,也能夠Shift+v),進入行可視化
按「Ctrl+v」,進入塊可視化
什麼是可視化? 就是一種控制選擇粒度的方案。
字符可視化 選擇粒度是一個字符,就是以字符爲單位,一次選擇一個字符
行可視化 選擇粒度是一整行,就是爲行爲單位,一次選擇一行
塊可視化 最強大的選擇粒度,沒有選擇單位,可自由選擇,選擇完的區域造成一個塊,因此叫塊可視化

下面羅列工做中用到可視化最經常使用的操做:

把連續的幾行代碼在行首部註釋掉

步驟 指令 做用
num1+gg 把光標定位到須要註釋掉的幾行代碼的首行的行首
Ctrl+v 進入塊可視化
num2+gg 把光標定位到須要註釋掉的幾行代碼的末行的行首(若是行數很少,就連續按↓或者j,直到末行爲止便可)
Shift+i」或者I 在第一個非空格符處開始進入編輯模式
輸入「#」 通常的註釋符是「#」號,這裏也能夠輸入其餘的註釋符
按Esc退出 若是行數比較多,按下Esc不能當即給所選的全部行加上#號,須要等待1~2秒便可

既然有一次性註釋的方法,那麼也就有一次性取消註釋的方法

步驟 指令 做用
num1+gg 把光標定位到須要取消註釋掉的幾行代碼的首行的行首
Ctrl+v 進入塊可視化
num2+gg 把光標定位到須要取消註釋掉的幾行代碼的末行的行首 //若是行數很少,就連續按↓或者j,直到末行爲止便可
執行d刪除 便可刪除全部的「#」

把連續的幾行代碼在行尾部加上相同字符(好比C++代碼是在行尾部加「;」才能生效):

步驟 指令 做用
num1+gg 把光標定位到須要加「;」的幾行代碼的首行的行首
Ctrl+v 進入塊可視化
num2+gg 把光標定位到須要註釋掉的幾行代碼的末行的行首 //若是行數很少,就連續按↓或者j,直到末行爲止便可
$ 光標瞬移到當前行的行尾
「Shift+a」或者A 在最後一個非空格符處開始進入編輯模式
輸入「;」 添加「;」
按Esc退出 若是行數比較多,按下Esc不能當即給所選的全部行加上;號,須要等待1~2秒便可

一次性刪除N行代碼(我知道可用Ndd完成,這裏用行可視化完成)

步驟 指令 做用
num1+gg 把光標定位到須要刪除的幾行代碼的首行的行首
「Shift+v」或者V 進入行可視化
num2+gg 把光標定位到須要刪除掉的幾行代碼的末行的行首 //若是行數很少,就連續按↓或者j,直到末行爲止便可
執行d刪除 可刪除全部的被選中行

一次性刪除所選內容(這個用Ndd可完成不了,這裏用塊可視化完成)

步驟 指令 做用
num1+gg 把光標定位到須要刪除內容的起始行的行首
f+字母/數字 跳轉到須要刪除部分的起始位置
Ctrl+v 進入塊可視化
num2+gg 把光標定位到須要刪除部分的末尾部分所在行的行首 //若是行數很少,就連續按↓或者j,直到末行爲止便可
再次執行「f+字母/數字」 跳轉到須要刪除部分的結尾位置
說明 若是行數不是太多,須要刪除的部分所有在一個窗口內,則不用④和⑤那麼麻煩,直接使用「← ↓ ↑→」方向鍵來選定須要刪除的區域便可
執行「d」刪除 可刪除全部的被選中部分

既然有添加和刪除,那麼必定也有替換

步驟 指令 做用
num1+gg 把光標定位到須要替換內容的起始行的行首
f+字母/數字 跳轉到須要替換部分的起始位置
Ctrl+v 進入塊可視化
num2+gg 把光標定位到須要替換部分的末尾部分所在行的行首 //若是行數很少,就連續按↓或者j,直到末行爲止便可
再次執行「f+字母/數字」 跳轉到須要替換部分的結尾位置
說明 若是行數不是太多,須要替換的部分所有在一個窗口內,則不用④和⑤那麼麻煩,直接使用「← ↓ ↑→」方向鍵來選定須要替換的區域便可
執行「r」 替換命令
輸入新的字符 輸入完便可
相關文章
相關標籤/搜索