什么是vim:
Linux 在命令行下的文本編輯器,很多個別軟件的編輯接口都會主動調用vim,所以在 Linux 的系統中使用文字編輯器來編輯你的Linux參數配置文件,在 Linux 的世界中,絕大部分的配置文件都是以 ASCII 的純文本形態存在,因此利用簡單的文字編輯軟件就能夠修改設置.所有的Unix Like系統都會內置vim文書編輯器,其他的文書編輯器則不一定會存在,vim 具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程序設計;因為程序簡單,編輯速度相當快速。
vim 會依據文件的擴展名或者是文件內的開頭信息,判斷該文件的內容而自動的調用該程序的語法判斷式,再以顏色來顯示程序碼與一般信息。也就是說,這個vim 是個“程序編輯器”!甚至一些Linux基礎配置文件內的語法,都能夠用vim來檢查。
vim是一個模式化的編輯器,分為編輯模式,輸入模式,末行模式,當然模式的名稱每個人都有自己的見解,紅帽官方命名為,命令模式,編輯模式,擴展命令模式
基本模式:又叫編輯模式,命令模式,以vim打開一個文件的時候就直接進入編輯模式了,在這個模式中, 你可以使用“上下左右”按鍵來移動光標,你可以使用“刪除字符”或“刪除整列”來處理文件內容, 也可以使用“復制、粘貼”來處理你的文件數據。
輸入模式:在一般指令模式中可以進行刪除、復制、粘貼等動作,但是卻無法編輯文件內容的! 要等到你按下“i, I, o, O, a,A, r, R”等任何一個字母之后才會進入輸入模式。通常在Linux中,按下這些按鍵時,在畫面的左下方會出現“INSERT或REPLACE”的字樣,此時才可以進行編輯。而如果要回到編輯模式時, 則必須要按下“Esc”這個按鍵即可退出編輯模式。
末行模式:在編輯模式當中,輸入“:”,就可以將光標移動到最下面那一行。在這個模式當中,可以提供你“搜索數據”的動作,而讀取、存盤、大量取代字符、離開vim、顯示行號等等的動作則是在此模式中達成的!其實就是內置的命令行接口。
使用vim打開文件的正確姿勢:直接vim命令后邊跟上文件名直接就進入編輯模式了。
vim [options] [file ..]:在vim后跟上選項可以指定光標所處的位置
+#:打開文件后,直接讓光變處于第#行首
+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的首
在編輯模式鍵入相對應的鍵位可以改變光標所在位置
i:insert;在光標所在處輸入
a:append;在光標所在處的后方輸入
o:在光標所在出下方打開一個新行;
I:在光標所在行的行首輸入
A:在光標所在行的行尾輸入
O:在光標所在處的上方打開一個新行
關閉文件
ZZ:保存并退出(在編輯模式)
:q 退出(在末行模式)
:q!強制退出,不保存此前的編輯操作(在末行模式)
:wq保存并退出;(在末行模式)
:w,q(在末行模式)
:x保存并退出(在末行模式)
:w/PATH/TO/SOMEFILE(在末行模式)
光標跳轉:(在編輯模式)
字符間跳轉
h,左
j,下
k,上
l,右
#cmd:跳轉由#指定的個數的字符;
單詞間跳轉
w:下一個單詞的詞首;
b:當前或前一個單詞的詞首
e:當前或后一個單詞的詞尾
#cmd:跳轉由#指定的個數的單詞;
行首行尾跳轉(在編輯模式)
^:跳轉至行首的第一個非空白符
0:跳轉至行首
$:跳轉至行尾
行間跳轉
#G:跳轉至由#指定的行
1G:,gg:第一回
:最后一行
句間跳轉
)
(
段間跳轉
}
{
翻屏:(在編輯模式)
ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+U:向文件首部翻半屏
Enter:按行向后翻
vim的編輯命令
字符編輯:(在編輯模式)
x:刪除光標所在處的字符
#x:刪除光標所在處起始#個字符
xp:交換光標所在出的字符與其后面所在符的位置
替換命令:
r:替換光標所在處的字符(后邊要跟一個需要換的字符)
r(char)
刪除命令:(在編輯模式)
d:刪除命令,可結合光標跳轉字符,實現范圍刪除
d$:
d^:
dw:
de:
db:
dd:刪除光標所在處的整行
#cmd:刪除光標所在處的行起始的共#行
粘貼命令:(在編輯模式)
p:緩沖區的內容如果為整行,則粘貼在當前光標所在行的下方,否則則粘貼至當前光標所在處的后方
P:緩沖區的內容如果為整行,則粘貼在當前光標所在行的上方,否則則粘貼至當前光標所在處的前方
復制命令:(在編輯模式)
y:復制,工作行為相似與d命令;
y$
y^
y0
ye
yw
yb
#cmd
yy:復制一整行
#yy:復制#行
改變命令:編輯模式–>輸入模式,實現刪除操作;
c^
c$
c0
cb
ce
cw
#cmd
cc:刪除光標所在出的行,并轉換為輸出模式
#cc
其他編輯操作
可視化模式:
v:按字符選定
V:按行選定
結合編輯命令;d,c,y
撤銷操作
u:撤銷此前的操作
#u:撤銷此前的#個操作
恢復此前的撤銷操作:
ctrl+r
重復執行前一個編輯操作
.
vim末行模式:內建的命令行接口
(1):地址定界
:start_pos[,en_pos]
#:特點的第#行,例如5即第5行
.:當前行
$:最后一行
#,#:指定行范圍,左側為起始行,右側為結束行
#,+#:指定范圍行,左側為起始行絕對編號,右側為相對左側行號的偏移量;例如3,+7
.,$-1
1,$
%:全文
/pattern/:從光標所在處起始第一次被模式匹配到的行
/pattern1/,/pattern2/:從光標所在處開始,由pat1匹配到的行開始,至第一次由pat2匹配到的行結束之間的所有行和編輯命令
一同使用,實現編輯作用
d
y
c
w /path/to/somefile:將范圍內的文本保存至指定的文件中
r /path/from/somefile:將指定的文件中的文本讀取并插入至指定位置
(2):查找
/pattern:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;
?pattern:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串;
n:下一個,與命令方向相同
N:上一個,與命令文件相反
(3):查找并替換
s:末行模式的命令,使用格式;
s/要查找的內容/替換為的內容/修飾符
要查找的內容:可使用正則表達式:
替換為的內容:不能使用正則表達式,但可引用
如果“要查找的內容”部分在模式中使用分組符號:在“替換為的內容”中使用后向引用;
直接引用查找模式匹配到的整個文本,使用&符號;
修飾符:
i:忽略大小寫;
g:全局替換,意味著一行中如果匹配到多次,則均替換;
vim自帶的練習教程:vimtutor
最后配上摘自鳥哥私房菜關于vim的按鍵說明,環境配置圖和同學分享的VIM鍵盤圖
環境配置圖
VIM鍵盤圖(這真真是太好了)
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/32290