vim編輯器
文本編輯器:
文本:純文本雕凹,ASCII text嗜闻,Unicode 盆驹;【word不是純文本處理 工具缎浇,有各種格式】
文本編輯器種類:
行編輯器:sed
全屏編輯器:nano揭蜒,vi
vi:visual interface
vim:vi improved 即vi的增強版
vim:格式 化的編輯器
基本模式:
編輯模式,即命令模式
輸入模式集畅,即插入模式
末行模式:
內置的命令行接口旨椒。
打開文件:
vim [options] [file ..]
默認打開光標在首行
+:只帶+這一個參數(shù),光標顯示在尾行行首
+# :打開文件后魔吐,讓光標處于#行的行首
+/pattern:打開文件后扎筒,直接讓光標處于第一個被 pattern匹配的位置行的行首【例如到達文件中l(wèi)isa的位置,vim /path/to/file +/lisa即可
模式轉換:
編輯模式:默認模式
編輯模式 --> 輸入模式:
i:insert 在光標所在處輸入酬姆;
a:append嗜桌,在光標處后方輸入;
o:在光標所在處下方打開一個新行辞色,會把原來處于下行的數(shù)據(jù)整體下移骨宠;
I:【大寫的i】在光標所在的行的行首輸入;
A:在光標所在行的行尾進行輸入;
O:在光標所在處的上方打開一個新行层亿。
輸入模式 -->編輯模式:
ESC
編輯模式 -->末行模式【內置命令行】:
:冒號
末行模式 -->編輯模式:
ESC
關閉文件:
ZZ:保存并退出【編輯模式下】
:w 保存
:q退出
:q! 強制退出桦卒,不保存此前的編輯
:wq 保存并退出
:x 保存并退出
:w /path/to/file 另存為/path/to/file
光標跳轉:
字符間跳轉
h,l向左和向右一個字符跳轉
j匿又,k向下和向上一行跳轉
如果在這四個字母前面加上一個數(shù)字方灾,則表示往此方向跳轉此數(shù)字個字符
單詞間跳轉
w:跳到下一個單詞的詞首;
b:當前或前一個單詞的詞首碌更;
e:當前或后一個單詞的詞尾
也可以在字母前加數(shù)字表示跳轉單詞的個數(shù)
行首行尾跳轉
^:跳轉至行首的非空白字符裕偿;
0:跳轉至絕對行首,包括空字符痛单;
$:跳至絕對行尾
行間跳轉
#G: 跳轉至#行行首
1G或gg:跳轉至第一行
G:跳轉至最后一行
句間跳轉:
):下一句
(:前一句
前面可以加數(shù)字
段間跳轉
}下一段
{上一段
翻屏:
CTRL+f :向文件尾部翻一屏
CTRL+b:向文件首部翻一屏
CTRL+d:向文件尾部翻半屏
CTRL+u:向文件首部翻半屏
回車鍵:向后翻行
vim的編輯命令:
字符編輯
x:刪除光標所在處的字符嘿棘,#x 刪除光標處所在處起始的#個字符
xp:交換光標所在處的字符與其后面的字符的位置
替換命令(replace)
r:替換廣播所在處的字符
r之后輸入將要替換后的字符
刪除命令
d:刪除命令
d$ 刪除當前光標所在處至行尾
d^:刪除當光標至行首【非空行首】
d0:刪除當光標至絕對行首
dw:刪除至下一個單詞行首
de:刪除至當前單詞結尾
db:刪除至當前單詞行首
dd:刪除整行
以上命令前添加數(shù)字即可對數(shù)字倍數(shù)的目標數(shù)據(jù)進行刪除 ,刪除后的結果會保存在緩沖區(qū)桦他,即剪切的功能
粘貼命令(p,put,paste):
p:緩沖區(qū)的內容如果是整行,則粘貼在當前光標所在行的下方谆棱,否則粘貼至當前光標所在處的后方
P:緩沖區(qū)的內容如果是整行快压,則粘貼在當前光標所在行的上方,否則粘貼至當前光標所在處的前方
dd命令的復制的都是行數(shù)據(jù)垃瞧,其他的都是非行數(shù)據(jù).
復制命令(yank,y):
y:復制蔫劣,工作行為相似于d命令
y$
y^
y0
ye
yw
yb
yy 復制一整行
#command 復制#個/行數(shù)據(jù)
改變命令(change,c):
編輯模式 --> 輸入模式,實現(xiàn)刪除操作 个从;
c$
c^
c0
cb
ce
cw
cc 刪除光標所在行脉幢,并且轉換為輸入模式
#command刪除#個,并轉換為輸入模式
可視化模式(visual):
移動上下左右即可進行范圍內選中
v:按字符選定
V:按行選定
結合編輯命令:d嗦锐,c嫌松,y
撤銷操作(undo):
u:最多可以撤回50步
#u 撤銷此前的#步操作
撤銷此前的撤銷:
CTRL + r
執(zhí)行重復前一個編輯操作:
.小數(shù)點
vim 自帶教程:vimtutor命令
vim末行模式:
內建的命令行接口
1、地址定界
:start_pos,[end_pos]
#:特定的第#行
#,#:指定行范圍起始-結束奕污;
.:小數(shù)點表示當前行再芋;
$:表示最后一行溶弟;
#,+#:指定行范圍,做錯為起始行絕對編號勾徽,右側為相對左側行號的偏移量,例如3嚣潜,+7表示第三行和后面的7行
%:全文
/pattern/:從光標所在處起始向文件尾部懒棉,第一次被模式所匹配的行
/pattern1/,/pattern2/:從廣播所在其實向文件尾部,第一次由pattern1匹配到的行開始该抒,到第一次由pattern2匹配到的行結束之間的所有行慌洪。
一般同編輯命令一同使用,實現(xiàn)編輯操作:
d刪除
y復制
c刪除并輸入
例如:1,$d即刪除全文
w /path/to/file :將范圍內的 文本另存為;
r /path/to/file:將指定的文本讀取并插入至當前文本的指定位置
2蒋譬、查找
/pattern:從當前光標處所在處往文件尾部查找能夠被當前模式匹配道德所有字符串割岛;
?pattern:從當前光標處所在處往文件首部查找能夠被當前模式匹配道德所有字符串;
n:下一個犯助,與查找方向相同癣漆;
N:上一個,與查找方向相反剂买。
3惠爽、查找并替換
s:末行模式的命令,使用格式:
s/要查找的內容/替換為的內容/修飾符
要查找的內容:可使用正則表達式瞬哼;
替換為的內容:不能使用正則表達式婚肆,但是可以引用(如果要查找的內容福分在模式中使用分組符號,使用\1,\2...后向引用坐慰;或者可以直接引用查找模式匹配的全部文本较性,使用&符號)
修飾符:
i:忽略大小寫;
g:全局替換结胀,意味著一行中如果匹配到多次赞咙,則均替換【默認是只替換一行中第一次出現(xiàn)的】
可把分隔符/替換為其他分隔符,可以使用@或#糟港,因為/有時候是文本內的內容攀操。
實例:
把文檔中的所有以t開頭的單詞轉換為首字母大寫,即T開頭:
:%s@\<t\([[:alpha:]]\+\)\>@T\1@g
把文檔中的所有以t開頭的單詞轉換為此單詞后加er:
:%s@\<t([[:alpha:]]+\)\>@er@g
vim的多文件功能:
vim file1 file2 ...
在文件間切換:
:next
:prev
:first
:last
退出所有文件:
:wqall 保存并退出所有文件秸抚;
:wall 保存所有文件
:qall 退出所有文件
多窗口顯示:
-o:水平分割窗口
-O:垂直分割窗口
CTRL+w 松開后按上下左右鍵切換
當前單文件也可以分割為多個窗口查看:CTRL+w 松開后按s水平分割速和,CTRL+w,松開后按v垂直分割窗口
定制vim的工作特性:
在末行模式下的設定剥汤,僅對當前vim進程有效
永久有效:
全局:/etc/vimrc
用戶個人:~/.vimrc
1颠放、行號
顯示:set number,簡寫為set nu
取消顯示:set nonumber簡寫為set nonu
2吭敢、括號匹配高亮【但是經(jīng)驗證慈迈,好像沒那么有效,即設置不起作用省有,默認都是會匹配的】
匹配:set showmatch痒留,set sm
取消:set nosm
3、自動縮進
編輯一行縮進到一定位置蠢沿,回車后自動縮進伸头。
set ai /noai :ai 即auto indent
4、高亮搜索
啟用:set hlsearch
禁用:set nohlsearch
5舷蟀、語法高亮
啟用:syntax on
禁用:syntax off
6恤磷、忽略字符大小寫
啟用:set lc
禁用:set nolc
獲取幫助:
:help
:help subject