Vim編輯器:
全屏幕的編輯器:VIM
vi: visual interface
sed:行編輯器
vi, vi iMproved
vim:
模式化:
編輯模式:命令模式
輸入模式:
末行模式:
編輯模式 --> 輸入模式:
i: insert,
a:append,
o:new line,
I: 行首
A:行尾
O:上方新建行
輸入模式 --> 編輯模式:
ESC
編輯模式 --> 末行模式:
:
末行模式 --> 編輯模式
ESC
打開vim:
# vim
# vim /PATH/TO/SOMEFILE
+#:#爲行號;
+/PATTERN
關閉vim:
:q
:q!
:wq
:x
ZZ:保存退出
光標跳轉:
字符間跳轉:
h:
l:
j:
k:
#COMMAND:
單詞間跳轉:
w:後單詞的詞首
e:當前或後一個單詞的詞尾;
b:當前或前一單詞的詞首;
#COMMAND:
行內跳轉:
^: 跳轉至行首的第一個非空白字符;
0:跳轉至行首;
$: 跳轉至行尾;
行間移動:
#G:
1G, gg
G
句間移動:
)
(
段落間移動:
}
{
編輯命令:
字符編輯:
x: 刪除光標所在處的字符
#x:
xp:
r: 替換光標所在處的字符;
刪除命令:
d:
d^
d$
d0
dw, de, db
dd:
#COMMAND
注意:刪除的內容會被vim編輯器保存至緩衝區當中;
粘貼:p (paste, put)
如果此複製或刪除的內容不是一個完整行
p:粘貼至當前光標所在處後面;
P:粘貼至當前光標所在處前面;
如果複製的內容是完整行(可不止一行)
p: 粘貼至當前光標所在行下方;
P:行上方;
複製命令:y, yank
y
y$, y^, y0
ye, yw, yb
yy: 複製行
#COMMAND
改變命令:c, change
c$, c^, c0
cb, ce, cw
cc:
#COMMAND
撤消此前的編輯操作:
u: undo
撤消此前編輯操作;
#u
Ctrl+r:
恢復此前的撤消操作
.: 重複前一個編輯操作
翻屏操作:
Ctrl+f: 向後一屏;
Ctrl+b:向前一屏;
Ctrl+d: 向後半屏
Ctrl+u: 向前半屏
vim內建教程:
vimtutor
vim的末行模式
(1) 地址,定界
:start_pos,end_pos
#:第#行;
#,#
#,+#
.: 當前行
$: 最後一行
%: 全文,相當於1,$
/pat1/:第一次被此模式所匹配到的行;
#,/pat1/
/pat1/,/pat2/
後可跟編輯命令:
d, y
w, r
(2) 查找
/PATTERN:向尾部進行
?PATTERN:向首部進行
n: 與命令同方向
N:與命令反方向
(3) 查找替換
s: 在末行模式下,在地址定界的範圍內完成查找替換操作;
s/要查找的內容/替換爲的內容/修飾符
要查找的內容:可使用模式
替換爲的內容:不能使用模式,但可以使用後向引用符號,以引用前面模式中的分組括號所匹配到的內容;
\1, \2, ...
&:引用“要找的內容”匹配到的整個內容;
修飾符:
i: 忽略大小寫
g: 全局替換
/:用於分隔符,所以,要查找的內容或替換爲的內容中出現此符號,要使用\對其轉義,使用格式:\/
分隔符可替換爲其它字符:例如@,#等;
多文件模式:
vim FILE1 FILE2 ...
:next
:first
:prev
:last
:wqall
:q!all
多文件窗口分割:
vim -o|-O FILE1 FILE2 ...
Ctrl+w, ARROW
單文件窗口分割:
Ctrl+w, s: split, 水平分割
Ctrl+w, v: vertical, 垂直分割
定製vim的某些工作特性:
(1) 行號
顯示:set nu
禁用:set nonu
(2) 括號匹配
顯示:set sm
禁用:set nosm
(3) 自動縮進:
set ai
set noai
(4) 高亮搜索
set hlsearch
set nohlsearch
(5) 語法着色
syntax on
syntax off
(6) 忽略字符大小寫
set ic
set noic
:help 獲取幫助
:help SUBJECT
特性設定的永久生效方式:
全局配置文件:/etc/vimrc
用戶個人的配置文件:~/.vimrc