一、编辑模式
vim有三种编辑模式
-
i 进入文本编辑模式
-
esc 进入命令编辑模式
命令编辑状态下 dd删除整行
-
:进入底行模式
底行模式状态:
输入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或者文件的所有者) |
三、应用实例
1、在vi中导入文件
:r 文件
如:导入/test目录下的abc.txt文件 :r /test/abc.txt
2、在vi中执行命令
:!命令
如:在vi编辑器中查看 /test目录下的文件详细信息:!ls -l /test
这样就不需要先退出vi再去执行命令
3、把命令执行的结果导入到vi中
:r !date
如:把date命令执行的结果导入到vi中
4、定义快捷键
:map 快捷键 触发的命令
如: :map ^P I
注意,在vi中,^这个符号是使用ctrl+v组合输入的符号,^P 在vi中的输入是ctrl+v和ctrl+p,或者ctrl+v+p
:map ^P I
: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行之间的行首的#注释去掉 |