vim
vim的是全文編輯器,而sed是屬於行編輯器,vim的活動範圍是全文,sed的活動範圍是行。vim
三種模式:bash
編輯模式(命令模式,命令不外顯),好比複製yy,粘貼papp
輸入模式(插入模式)編輯器
末行模式(命令行模式,命令外顯),好比set bg=darkide
打開vim默認就是處於編輯模式下,就能夠輸出隱式的命令,所謂的隱式的命令就是像dd這樣的命令,咱們在鍵盤上敲了以後不會顯示在界面上,可是會生效。命令行
//打開文件後,直接處在文件的第一行 vim + /etc/passwd //打開文件後,直接讓光標處在第9行的行首 vim +9 /etc/passwd // 打開文件後,直接處在文件的最後一行 vim +$ /etc/passwd //打開文件後直接讓光標處於第一個被模式匹配到的行的行首 vim +/^zhanghe /etc/passwd
咱們剛進入vim的時候默認是編輯模式,並不能編輯,必須轉換成爲輸入模式才能夠,從編輯模式轉換到輸入模式的方式有這幾種:文檔
insert: i :在光標所在處前方輸入 I :在光標所在行首插入 append: a :在光標所在處後輸入 A :在光標全部行的行尾插入 o(小寫),在當前光標所在行的下方打開一個新行 O(大寫),在當前光標所在行的上方打開一個新行
從輸入模式與編輯模式就一種方式:ESC便可。it
從編輯到末行模式使用冒號就能夠,末行模式(命令行模式)裏面經常使用命令以下:ast
:q退出class
:q!強制退出不保存
:wq保存退出
:wq!強制保存退出
:x保存退出
:w保存不退出
:w /PATH/TO/SOMEWHERE #保存到另外一個文件,至關於另存爲
:set nu顯示行號
1,10d刪除第一行到第10行
從末行模式到編輯模式一下ESC或者兩下ESC便可,按完以後末行模式的冒號就消失了。
編輯模式(隱式命令)裏面的經常使用操做:
字符跳轉
hl字符間的左右跳轉
jk字符間的上下跳轉
按一下數字再按jkhl中任意一下,就能夠指定跳轉多少下,好比3 j向下轉換三次
w跳到下一上單詞的詞首
b當前或上一個單詞的詞首,第一次是本身所在的單詞,第二次是上一個單詞的詞首、
e當前或下一個單詞的詞尾,第一次是本身所在的單詞,第二次是下一個單詞的詞尾
也能夠用用數字加持,好比3 e,跳轉到從當前數據第三個單詞的詞尾。
^行首
$行尾
gg跳轉到第一行
G跳轉到最後一行
ZZ保存並退出
在編輯模式當中x用來刪除光標右側單個的字符,其實就是刪除光標蓋住的字符。
使用dd命令能夠刪除一行
d^能夠刪除一行當中光標到行首的全部內容
d$能夠刪除一行當中光標到行尾的全部內容
#dd:多行刪除
:1,10d,在末行模式下也能夠刪除,刪除第一行到第十行
y^ 複製光標到行首的內容
y$ 複製光標到行尾的內容
y1G 複製光標到文檔首部的內容
yG 複製光標到文檔尾部的內容
yy複製一整行
#yy複製多行,包括當前所在的行
P(小寫):緩衝區存的若是爲整行,則粘貼當前光標所在行的下方,不然,則粘貼至當前光標所在處的後面。
P(大寫):緩衝區存的若是爲整行,則粘貼 當前光標所在行的上方,不然,則粘貼到當前光標所在處的前面。
使用d刪除的內容實際沒有刪除,而保存在緩衝區當中。
C:刪除光標後面的字符,前進入插入模式
c c;刪除一整行的內容
#cc:刪除多行而後進入插入模式
c^:插入光標前面的內容進入插入模式
c$:插入光標後面的內容進入插入模式
c1G :插入光標到文檔首部的全部內容進入插入模式
cG:插入光標到文檔結尾的全部內容進入插入模式
刪除到文檔首部的時候並非以字符,而是以行爲單位,也就是說當使用c1G或者cG的時候是刪除當前整行到文檔首部和尾部的內容
可視化模式(使用可視化操做的時候最好使用上下光標來配合)
v:按字符選定
V:按行選定
常常與刪除,刪除並插入、複製、連用
可視操做在寫腳本的時候常常用到,選中多行以後,經過shift+>進行tab進行總體縮進。
若是想要刪除連續多行當中開頭的空格或TAB的話,不管經過大V仍是小v都不太使,在編輯模式使用ctrl+v就能夠按字符選中,這個在後面寫腳本的時候用的比較多。
在編輯模式使用u便可撤消上一步的操做
ctr+r把撤消給撤消了
r替換光標所在處的字符
重複上一步的操做使用點便可
ctrl+u:向文件首部翻半屏
ctrl+d:向文件尾部翻半屏
:start_pos,end_pos
#:具體第#行,例如2表示第2行
#,#:從左側#表示行起始,到右側#表示行結尾
#,+#:從左側#表示起始行,加上右側#表示的行數
. 當前行
$:最後一行
.,$-1:表示當前行到倒數第二行。
%:全文,至關於1,$
/pat1/,/pat2/
從第一次被pat1模式匹配到的行開始,一直到最後一次被pat2匹配到的行結束
#,/pat/
/pat/,$
常常與編輯命令連用:
d
y
w /PATH/TO/SOMEWERE,將範圍內的行另存到指定文件中
r /PATH/FROM/SOMEWERE,在指定位置插入文件中的全部內容
例:把1——24行選中後刪除:「:1,24d」
把開頭是zhanghe的一直到開頭是zhangjia之間全部刪除:「:/zhanghe/,/zhangjia/d」
/PATTERN;從當前光標所在處向文件尾部查找
?/PATTERN:從當前光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向
格式 :<界定> s@/須要搜索的模式/@/替換的內容/@g
s:末行模式下完成查找替換操做
s/要查找的內容/替換爲的內容/修飾符
要查找 的內容:可以使用模式
替換爲的內容:不能使用模式,但可使用\1,\2等後向引用符號,還可使用&引用前面查找進查找到的整個內容
修飾符:
i忽略大小寫
g:全局替換,全部的都替換,若是不加g 話,第行只替換第一次出現
note:查找替換中的分隔符/可替換爲其它字符,例如:s@@@,s###
//將從第一行到第10行的bash替換爲BASH :1,10s@bash@BASH@g //將第一行的r..t模式下查找到的內容替換爲ROOT :1s@r..t@R00T@ //將第一行到第五行中的:號全都替換成兩個冒號 :1,5s@\(:\)@\1:@g //將和一行到第3行當中的bin全都替換成BIN,不區分大小寫 :1,3s@bin@BIN@i
7.14 多文件操做
vim後面跟多個文件可打開多個文件,如:
[root@China ~]# cp /etc/{fstab,passwd,shadow} /tmp [root@China ~]# vim /tmp/{fstab,passwd,shadow}
在末行模式輸入:
:n跳轉到下一個文件 :N跳轉到上一個文件 :first跳轉到第一個文件 :last跳轉到最後一個文件 :wall保存全部 :qall退出全部 :wqall退出並保存全部
vim –o FILE……水平分割
vim –O FILE ……垂直分割
在窗口之間切換使用ctrl+w命令,或者再加上箭頭
ctrl+w,s:split水平分割
ctrl+w,v:vertical垂直
全局:/etc/vimrc
我的:~/.vimrc 默認沒有,需自行建立
set ruler設置標尺
set number—set nonumber 顯示行號
set autoindent—set noautoindent自動縮進
set hlsearch-----set nohlsearch hl=high light搜索高亮
set bg=dark,這個色調最好用
set bg=light,默認是這個色調
NOTE:VIM能夠經過可視模式選中以後使用x所有刪除
1.刪除全部內容
命令爲:ggdG
其中,gg爲跳轉到文件首行;dG爲刪除光標所在行以及其下全部行的內容;
再細講,d爲刪除,G爲跳轉到文件末尾行;
定位到第一行: 1 + shift + G
定位到最後一行:shift + G
定位到第x行: x + shift + G