一、引言
在Linux中,vi(Visual Interface)是標準的編輯器,功能強大到不遜于任何最新的編輯器。無論在Linux中還是在Unix中,vi的使用方法都是完全相同的。vim(Vi Improved)在vi的基礎上增加了很多新特性。
二、模式
vim的工作模式有三種,用戶在不同模式下可以進行不同的操作
命令模式:控制屏幕光標的移動,字符、字或行的刪除、移動和復制
插入模式:插入模式可以對文本內容進行文字輸入
命令擴展模式:保存,退出等命令的輸入
模式切換
ESC鍵進入命令模式
命令模式下,“:”冒號進入命令擴展模式
命令模式 –> 插入模式
i insert, 在光標所在處輸入
I 在當前光標所在行的行首輸入
a append, 在光標所在處后面輸入
A 在當前光標所在行的行尾輸入
o 在當前光標所在行的下方打開一個新行
O 在當前光標所在行的上方打開一個新行
鎖定:Ctrl+s
解鎖:Ctrl+q
(鎖定過程中,可以接受來自鍵盤的輸入,但是不顯示在屏幕上)
三、打開與關閉文件
打開文件:vim [OPTION]…FILE…
+# 打開文件后,光標位于第#行的行首
+/PATTERN 打開文件后,光標位于第一個匹配到的行
+ 光標位于最后一行
-b 以二進制的方式打開文件
-m 只讀打開文件
-e 直接進入命令擴展模式
關閉文件:
擴展模式
:q 退出 :
q! 強制退出,丟棄做出的修改
:wq 保存退出
:x 保存退出
命令模式
ZZ:保存退出
ZQ:不保存退出
四、擴展模式
創建一個命令提示符,位于屏幕左下角、
常用命令:
w 寫(存)磁盤文件
wq 寫入并退出
x 寫入并退出
q 退出
q! 不存盤退出,即使更改都將丟失
r FILE 讀文件內容到當前文件中
w FILE 將當前文件內容寫入另一個文件
!command 強制執行命令
r!command 在vi中臨時執行命令
地址定界
:/PATTERN1/,/PATTERN2/
# 指定行
#,# 起始行到結束行
#,+# 指定行開始到向下的一些行
. 當前行
$ 最后一行
$-1 倒數第二行
% 全文,所有行,等于1,$
編輯命令:
d 刪除匹配的內容
y 復制匹配的內容
w FILE 將范圍內的行另存至指定文件中
r FILE 在制定位置插入指定文件中的所有內容
查找并替換:
s/PATTERN/STRING/修飾符(分隔符可以改變)
修飾符:
i 忽略大小寫
g 全局替換,否則默認情況下,每行只替換第一次出現的字符
gc 全局替換,替換前詢問是否替換
五、命令模式
字符間的跳轉:
h:左 l:右 j:下 k:上
單詞間的跳轉
w:下一個單詞詞首
e:當前或下一個單詞的詞尾
b:當前或前一個單詞的詞首
頁的跳轉
H:頁首
M:當前頁中間行
L:頁底
行首行尾跳轉:
^ 跳轉至行首的第一個非空白字符
O 跳轉至行首
$ 跳轉至行尾
行間移動:
#G(或擴展模式:#) 跳轉到第#行
G 最后一行
1G或gg 第一行
句間移動
): 下一句 (: 上一句
段落間的移動
}: 下一段 {:上一段
翻屏操作
Ctrl+f: 向文件尾部翻一屏
Ctrl+b: 向文件首部翻一屏
Ctrl+d: 向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
字符編輯
x: 刪除光標處的字符;
#x: 刪除光標處起始的#個字符
xp: 交換光標所在處的字符及其后面字符的位置
~:轉換大小寫
替換命令(r, replace)
r: 替換光標所在處的字符
R:切換成REPLACE模式
刪除命令:
d: 刪除命令,可結合光標跳轉字符,實現范圍刪除;
d$: 刪除到行尾
d^:刪除到非空行首
d0:刪除到行首
dw:刪除下一個單詞
de:刪除當前單詞
db:刪除前一個單詞
dd: 刪除光標所在的行
#dd:多行刪除
D:從當前光標位置一直刪除到行尾,留空行,等同于d$
復制命令
y:復制,用法同d命令
粘帖命令
p:緩沖區存的如果為整行,則粘貼當前光標所在行的下 方;否則,則粘貼至當前光標所在處的后面
P:緩沖區存的如果為整行,則粘貼當前光標所在行的上 方;否則,則粘貼至當前光標所在處的前面
六、vim的寄存器
vim中有26個命名寄存器和一個無名寄存器,常存放不同的剪貼板內容,可以在不同的會話中共享。分別用a-z表示,例如:3"tyy表示復制三行到寄存器t中,"tp則表示將寄存器t中的內容粘貼。若未指定寄存器,將使用無名寄存器。
vim中還有10個數字寄存器,用0-9表示,0表示最近復制的內容,1表示最近刪除的內容。當新的文本變更或刪除時,1會轉存到2中并以此類推。數字寄存器不能在不同會話中共享。
七、多文件模式
vim FILE1 FILE2 FILE3 …
:next 下一個
:prev 前一個
:first 第一個
:last 最后一個
:wall 保存所有
:qall 退出所有
:wqall 保存所有并退出
八、多窗口模式
多文件分割
vim -o|-O FILE1 FILE2 …
-o: 水平分割
-O: 垂直分割
在窗口間切換:Ctrl+w, Arrow
單文件窗口分割:
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
Ctrl+w,q:取消相鄰窗口
Ctrl+w,o:取消全部窗口
:wqall 退出
原創文章,作者:zhanghuanyu,如若轉載,請注明出處:http://www.www58058.com/32529