一、 三種模式
vim有三種編輯模式
1. i 進入文本編輯模式
2. esc 進入命令編輯模式
命令編輯狀態下 dd刪除整行
3. :進入底行模式
底行模式狀態 輸入q 退出 w保存 wq 保存並退出 !表示強制的意思 q!強制退出
二 、編輯文本常用快捷鍵
1、插入命令
a 在光標后附加文本
A 在本行行末附件文本
i 在光標前插入文本
I 在本行開始插入文本
o 在光標下插入文本
O 在光標上插入文本
2、定位命令
h或方向左鍵 左移一個字符
j或方向下鍵 下移一行
k或方向上鍵 上移一行
l或方向右鍵 右移一個字符
$ 移至行尾
0 移至行首
H 移至屏幕上端
M 移至屏幕中央
L 移至屏幕下端
:set nu 設置行號
:set nonu 取消行號
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
3、刪除命令
x 刪除光標所在的字符
nx 刪除光標所在處后n個字符
dd 刪除光標所在行
dG 刪除光標所在行導末尾的內容
D 刪除從光標所在行到末尾的內容
:n1,n2d 刪除指定范圍的行
4、復制和剪切命令
yy或者Y 復制當前行
nyy或者nY 復制當前行一下n行
dd 剪切當前行
ndd 剪切當前行以下n行
p或者P 粘貼在當前光標所在行下或行上
5、替換和取消命令
r 取代光標所在處的字符
R 從光標所在處開始替換字符,按Esc鍵結束
u 取消上一步操作
6、搜索和替換命令
/string 向前搜索指定命令,搜索時忽略大小寫:set ic ,如搜索ftp: /ftp
n 搜索指定字符串的下一個出現位置
:%s/被替換的字符串/替換成的字符創/g 例如把全文的ftp替換成hello :%s/ftp/hello/g
:n1,n2s/被替換的字符串/替換成的字符創/g 在一定的范圍內替換字符串
7、保存退出命令
:wq 或者 ZZ 保存退出
:q! 不保存退出
:wq! 強行保存退出 (root或者文件的所有者)
8、應用實例
1)在vi中導入文件 :
:r 文件
如:導入/test目錄下的abc.txt文件 :r /test/abc.txt
2)在vi中執行命令:
:!命令
如:在vi編輯器中查看 /test目錄下的文件詳細信息 :!ls -l /test
這樣就不需要先退出vi再去執行命令
3)把命令執行的結果導入到vi中:
如:把date命令執行的結果導入到vi中
:r !date
4)定義快捷鍵
:map 快捷鍵 觸發的命令
如: :map ^P I#<ESC> ^表示定義的快捷鍵,
注意,在vi中,^這個符號是使用ctrl+v組合輸入的符號,^P 在vi中的輸入是ctrl+v和ctrl+p,或者ctrl+v+p
:map ^P I#<ESC> 表示光標無論在行的哪個位置,只要按下ctrl+p就可以在行首插入#號,然后回到命令模式。I表示在行首插入文本,<ESC>表示 回到命令模式。
:map ^E acodeartisan@gmail.com 定義了一個快捷鍵ctrl+e,只要按下ctrl+e就可以在光標位置輸入我的郵箱acodeartisan@gmail.com,非常方便。
再比如我們要定義一個快捷鍵,無論光標在行的哪個位置,只要按下ctrl+b,就可以去掉行首的#注釋(實際上就是把行首的第一個字符刪掉)
:map ^B 0x 定義了一個快捷鍵ctrl+b。0表示移到行首,x表示刪除光標所在字符。
5)連續行注釋
:n1,n2s/^/#/g 在n1行和n2行之間的行首加入#注釋
:n1,n2s/^#//g 把n1行和n2行之間的行首的#注釋去掉