一、编辑模式
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行之间的行首的#注释去掉