VIM 強化基礎編輯器node
關於VIM是什麼,還有它的基礎部分,我想也就不用我說那麼多了,網絡上隨便搜搜多如牛毛…;
在這裏主要放一些基礎命令的使用和實例,其它的請自行Google就能夠,很是感謝;
系統演示環境:以CentOS 7.2進行演示,默認是安裝好的,若是沒有安裝 ~]# yum install -y vim-enhanced
正則表達式
官方文檔及教程vim
Vim的自帶練習教程 [root@node1 scripts]# vimtutor
直接在命令行下輸入vim可查看vim的基礎及版本信息等; [root@node1 scripts]# vim
你也能夠下載一個 Vim Documentation Chinese Version (Vim官方文檔中文版) https://sourceforge.net/projects/vimcdoc/files/?source=navbar
安裝好以後使用 :help @cn 命令查看中文官方文檔。網絡
VIM的三種基本模式app
一、編輯模式:命令行模式;
二、輸入模式:等待操做動做;
三、末行模式:有內置的命令行接口;
三種模式的轉換:
編輯模式(默認)轉換到-->輸入模式
i:insert,在光標所在處輸入;
a:append,在光標處的後方輸入;
o:在光標所在處下方打開一個新行;
I:在光標所在行的行首輸入;
-A:在光標所在行的行尾輸入;
-O:在光標所在處的上方打開一個新行;
輸入模式轉換到-->編輯模式
按鍵:ESC
從編輯模式轉換到-->末行模式
按鍵:shift+:
從末行模式轉換到-->編輯模式
按鍵:ESC
如何關閉文件編輯器
:ZZ 保存退出;
:q 退出;
:q!強制退出,不保存此前的編輯操做;
:x 保存並退出;
:w 另存爲 /PATH/TO/SOMEFILE;
:wq 保存並退出;
:w :qide
如何實現光標跳轉this
字符間跳轉:
h (左),l (右),j(上) ,k(下);
#COMMAND:跳轉由#指定的個數的字符; 單詞間跳轉:
w:下一個單詞的詞首;
e:當前或後一個單詞的詞尾;
b:當前或前一個單詞的詞首;
#COMMAND:跳轉由#指定的個數的字符; 行首行尾跳轉:
^:跳轉至行首的第一個非空白字符;
0:跳轉至行首;
$:跳轉至行尾; 行間跳轉:
#G:跳轉至#指定的行;
1G,gg:跳到第一行;
G:跳到最好一行; 句間跳轉:
),( spa
段間跳轉:
},{.net
翻屏功能
Ctrl+f:向文件尾部翻一屏;
Ctrl+b:向文件首部翻一屏;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
Enter:按行向後翻;
VIM的編輯命令
字符編輯:
x:刪除光標所在處的字符;
#x:刪除光標所在處起始的#個字符;
xp:交換光標所在處的字符與其後面的字符的位置;
替換命令:
r:替換光標所在處的字符;
r! : 在vim編輯器中使用編輯模式(r! command) ,讀入命令的執行結果;
刪除命令:
d:刪除命令,可結合光標跳轉字符,實現範圍刪除;
d^:從光標所在處,刪除到行首的內容;
d$:從光標所在處,刪除到行尾的內容;
dw:刪除光標所在處的單詞;
de:
db:
#COMMAND:刪除多個單詞;
dd:刪除光標所在處的行;
#dd:刪除光標所在處的行起始的共#行;
粘貼命令:
P(大寫):緩衝區中的內容若是爲整行,則粘貼在當前光標所在行的下方,
不然則粘貼至當前光標所在處的後方;
p(小寫):緩衝區中的內容若是爲整行,則粘貼在當前光標所在行的上方,
不然則粘貼至當前光標所在處的前方;
複製命令:
y:複製。工做行爲類似於d命令; y$,y^,y0,ye,yb,yw
#COMMAND
從當前行復制到行首:
:.,0y
yy:複製一整行
#yy:複製#行
改變命令:
從編輯模式–>輸入模式,實現刪除操做; c$,c^,c0,cb,ce,cw
#COMMAND
cc:刪除光標所在的行,並轉換爲輸入模式
#cc
可視化模式:
v:按字符選定;
V:按行選定;
一、ctrl+v 進入列編輯模式
二、向下或向上移動光標
三、把須要註釋的行的開頭標記起來
四、而後按大寫的I
五、再插入註釋符,好比"#"
六、再按Esc,就會所有註釋了
常常結合編輯命令使用
d,c,y
撤銷操做(undo):
u:撤銷此前的操做;
#u:撤銷此前的#個操做
撤銷此前的操做:
Ctrl+r
重複執行前一個編輯操做
點 .
VIM的末行模式
它有內建命令行接口
一、地址定界功能:
:start_pos,end_pos
#:特定的第#行,例如5即第5行;
#,#:指定行範圍,左側爲起始行,右側爲結束行;
#,+#:指定行範圍,左側爲起始行絕對編號,右側爲相對左側行號的偏移量;
例如:3,+7
-,$-1:從當前行到倒數第二行;
1,$:從第一行到最後一行;
%:全文搜索
/pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行;
/first/,$
/pat1/,/pat2/:從光標所在處開始,第一次由pat1匹配到的行開始,
至第一次有pat2匹配到的行結束之間的全部行;
注意:可同編輯命令一同使用,實現編輯操做;
d,y,c
w:/PATH/TO/SOMEFILE:將範圍內的文本保存至指定的文件中;
r:/PATH/FROM/SOMEFILE:將指定的文件中的文本讀取並插入指定的位置; 二、查找:
/PATTERN:從當前光標所在處向文件尾部查找可以被當前模式匹配到的全部字符串;
?PATTERN:從當前光標所在處向文件首部查找可以被當前模式匹配到的全部字符串;
n:下一個,與命令方向相同
N:上一個,與命令方向相反 三、查找替換:
s:末行模式的命令。使用格式是:[s/要查找的內容/替換爲的內容/修飾符 ]
要查找的內容:可以使用正則表達式,替換爲的內容:不能使用正則,但能夠引用;
若是‘要查找的內容’部分在模式中要使用分組符號, 在‘替換爲的內容’中使用後向引用;
即直接引用查找模式匹配到的所有文本;
修飾符:
i:忽略大小寫;
g:全局替換,意味着一行中若是匹配屢次,均替換;
把分隔符替換爲其它很是用字符
s@@@
s###
1,20s/this/This/
1,20s/this/This/g
1,20s/this/This/ig
:s/\/cgroup\/systemd/etc\/sysconfig/g
示例:
%s@\<t\([[:alpha:]]\+\)\>1@g
%s\<t[[:alpha:]]\+\>@&er@g
%s/^\s*// 對整個文檔行首替換空白字符
VIM的多文件功能
vim FILE1 FILE2……
多文件:
在文件間切換
:net 下一個;
:prev 上一個;
:first 第一個;
:last 最後一個;
退出全部文件
:wqall 保存全部文件並退出;
:wall;
:qall;
多窗口:
-o:水平分割窗口;
-O:垂直分割窗口;
在多窗口中切換
Ctrl+w(連續按w兩下),ARROW
Ctrl+w,s:水平分割窗口;
Ctrl+w,v:垂直分割窗口;
Ctrl+s: 鎖定窗口;
Ctrl+q: 解鎖窗口;
定製vim的工做特性
注意:在末行模式下的設定,僅對當前vim進程有效
永久有效:
全局:/etc/vimrc;
用戶我的:~ /.vimrc;
一、顯示行號
顯示:set number,簡寫爲set num;
取消顯示:set nomber,簡寫set nonu;
二、括號匹配高亮
匹配:set showmatch,簡寫set sm;
取消:set nosm;
三、自動縮進功能
啓用:set ai;
禁用:set noai;
四、搜索高亮
啓用:set hlsearch;
禁用:set nohlsearch;
五、語法高亮
啓用:syntax on;
禁用:syntax off;
六、末行模式搜索忽略字符大小寫
啓用:set ic;
禁用:set noic;
七、獲取幫助
末行模式下:help;
關鍵詞:help subject;
等等......
練習:如何設置tab鍵縮進4個字符
set ts=4;
set sw=4;
如須要使配置生效,即寫配置文件;
done!