vim編輯器
簡介
vi: Visual Interface饵溅,文本編輯器
文本:ASCII, Unicode
文本編輯種類:
行編輯器: sed
全屏編輯器:nano, vi
VIM - Vi IMproved
使用
vim:模式化的編輯
基本模式:
編輯模式妨退,命令模式
輸入模式
末行模式:
內(nèi)置的命令行接口
打開文件:
# vim [OPTION]... FILE...
+#: 打開文件后,直接讓光標(biāo)處于第#行的行首蜕企;
+/PATTERN:打開文件后咬荷,直接讓光標(biāo)處于第一個(gè)被PATTERN匹配到的行的行首;
模式轉(zhuǎn)換:
編輯模式 --> 輸入模式
i: insert, 在光標(biāo)所在處輸入轻掩;
a: append, 在光標(biāo)所在處后面輸入幸乒;
o: 在當(dāng)前光標(biāo)所在行的下方打開一個(gè)新行;
I:在當(dāng)前光標(biāo)所在行的行首輸入唇牧;
A:在當(dāng)前光標(biāo)所在行的行尾輸入罕扎;
O:在當(dāng)前光標(biāo)所在行的上方打開一個(gè)新行;
c
C
輸入模式 --> 編輯模式
ESC
編輯模式 --> 末行模式
:
末行模式 --> 編輯模式
ESC
關(guān)閉文件:
:q 退出
:q! 強(qiáng)制退出丐重,丟棄做出的修改腔召;
:wq 保存退出
:x 保存退出
:w /PATH/TO/SOMEWHERE
ZZ: 保存退出;
光標(biāo)跳轉(zhuǎn):
字符間跳轉(zhuǎn):
h, j, k, l
h: 左
l: 右
j: 下
k: 上
#COMMAND:跳轉(zhuǎn)由#指定的個(gè)數(shù)的字符扮惦;
單詞間跳轉(zhuǎn):
w:下一個(gè)單詞的詞首
e:當(dāng)前或下一單詞的詞尾
b:當(dāng)前或前一個(gè)單詞的詞首
#COMMAND:由#指定一次跳轉(zhuǎn)的單詞數(shù)
行首行尾跳轉(zhuǎn):
^: 跳轉(zhuǎn)至行首的第一個(gè)非空白字符宴咧;
0: 跳轉(zhuǎn)至行首;
$: 跳轉(zhuǎn)至行尾径缅;
行間移動:
#G:跳轉(zhuǎn)至由#指定行掺栅;
G:最后一行烙肺;
1G, gg: 第一行;
句間移動:
)
(
段落間移動:
}
{
vim的編輯命令:
字符編輯:
x: 刪除光標(biāo)處的字符氧卧;
#x: 刪除光標(biāo)處起始的#個(gè)字符桃笙;
xp: 交換光標(biāo)所在處的字符及其后面字符的位置;
替換命令(r, replace)
r: 替換光標(biāo)所在處的字符
刪除命令:
d: 刪除命令沙绝,可結(jié)合光標(biāo)跳轉(zhuǎn)字符搏明,實(shí)現(xiàn)范圍刪除;
d$:
d^:
d0:
dw
de
db
#COMMAND
dd: 刪除光標(biāo)所在的行闪檬;
#dd:多行刪除星著;
粘貼命令(p, put, paste):
p:緩沖區(qū)存的如果為整行,則粘貼當(dāng)前光標(biāo)所在行的下方粗悯;否則虚循,則粘貼至當(dāng)前光標(biāo)所在處的后面;
P:緩沖區(qū)存的如果為整行样傍,則粘貼當(dāng)前光標(biāo)所在行的上方横缔;否則,則粘貼至當(dāng)前光標(biāo)所在處的前面衫哥;
復(fù)制命令(y, yank):
y: 復(fù)制茎刚,工作行為相似于d命令;
y$
y0
y^
ye
yw
yb
#COMMAND
yy:復(fù)制行
#yy: 復(fù)制多行撤逢;
改變命令(c, change)
c: 修改
編輯模式 --> 輸入模式
c$
c^
c0
cb
ce
cw
#COMMAND
cc:刪除并輸入新內(nèi)容
#cc:
其它編輯操作
可視化模式:
v: 按字符選定
V:按行行定
Note:經(jīng)常結(jié)合編輯命令膛锭;
d, c, y
撤消此前的編輯:
u(undo):撤消此前的操作;
#u: 撤消指定次數(shù)的操作蚊荣;
撤消此前的撤消:
Ctrl+r
重復(fù)前一個(gè)編輯操作:
.
翻屏操作:
Ctrl+f: 向文件尾部翻一屏泉沾;
Ctrl+b: 向文件首部翻一屏;
Ctrl+d: 向文件尾部翻半屏妇押;
Ctrl+u:向文件首部翻半屏
vim自帶的練習(xí)教程:
vimtutor
vim中的末行模式:
內(nèi)建的命令行接口
(1) 地址定界
:start_pos,end_pos
#: 具體第#行跷究,例如2表示第2行;
#,#: 從左側(cè)#表示行起始敲霍,到右側(cè)#表示行結(jié)尾俊马;
#,+#: 從左側(cè)#表示的行起始,加上右側(cè)#表示的行數(shù)肩杈;
.: 當(dāng)前行
-1
%:全文, 相當(dāng)于1,$
/pat1/,/pat2/:
從第一次被pat1模式匹配到的行開始柴我,一直到第一次被pat2匹配到的行結(jié)束;
#,/pat/
/pat/,$
使用方式:
后跟一個(gè)編輯命令
d
y
w /PATH/TO/SOMEWHERE: 將范圍內(nèi)的行另存至指定文件中扩然;
r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有內(nèi)容艘儒;(2) 查找
/PATTERN:從當(dāng)前光標(biāo)所在處向文件尾部查找;
?PATTERN:從當(dāng)前光標(biāo)所在處向文件首部查找;
n:與命令同方向界睁;
N:與命令反方向觉增;
(3) 查找并替換
s: 在末行模式下完成查找替換操作
s/要查找的內(nèi)容/替換為的內(nèi)容/修飾符
要查找的內(nèi)容:可使用模式
替換為的內(nèi)容:不能使用模式,但可以使用\1, \2, ...等后向引用符號翻斟;還可以使用“&”引用前面查找時(shí)查找到的整個(gè)內(nèi)容逾礁;
修飾符:
i: 忽略大小寫
g: 全局替換;默認(rèn)情況下访惜,每一行只替換第一次出現(xiàn)嘹履;
查找替換中的分隔符/可替換為其它字符,例如
s@@@
s###