Vim&Vi编辑器使用常用命令
程序员文章站
2022-06-25 20:17:07
...
1. Vim/Vi工作模式
Vim/Vi没有菜单,只有命令
2. 常用命令
指令符号 | 描述 | |
---|---|---|
读、写及退出 | :r | 读入文本,从命令或从其他文件 |
:w | w表示写入的意思,也就是将目前的文件内容加以保存;【:w /root/service.bak】编辑过程中,文件另存为作为备份 | |
:q | q表示退出的意思,也就是结束vim的执行,但是文件内容若是进行了修改 ,会提示以下错误: E37: 已修改但尚未保存 (可用 ! 强制执行) | |
:q! | 强制离开vim,并且不保存文件 | |
wq、ZZ | 将修改过的内容存储,并离开vim | |
行标 | set nu | 显示行号 |
set nonu | 取消行号 | |
插入命令 | i | 在光标前插入文本 |
I | 在本行开始插入文本 | |
a | 在光标后附加文本 | |
A | 在本行行末附加文本 | |
o | 在光标下插入新行 | |
O | 在光标上插入新行 | |
r | 取代光标所在处字符 | |
R | 从光标所在初开始替换字符,按Esc结束 | |
定位命令 | H | 移至屏幕上端 |
M | 移至屏幕* | |
L | 移至屏幕下端 | |
h、方向左键 | 左移一个字符 | |
j、方向下键 | 下移一行 | |
k、方向上键 | 上移一行 | |
I、方向右键 | 右移一个字符 | |
$ | 移至行尾 | |
0 | 移至行首 | |
gg | 到第一行 | |
G | 到最后一行 | |
ngg、nG、:n | 到第n行 | |
剪切、复制、粘贴命令 | yy、Y | 复制当前行 |
nyy、nY | 复制当前行以下n行 | |
x | 删除光标所在处字符 | |
nx | 删除光标所在处后n个字符 | |
dd | 剪切当前行 | |
ndd | 剪切当前行以下n行 | |
D | 剪切当前行光标后部分 | |
nD | 剪切当前行光标后以下n行 | |
dG | 删除光标所在行到文件末尾的内容 | |
:n1,n2d | 删除指定范围的行 | |
p、P | 粘贴在当前光标所在行下或行上 | |
u | 取消上一步操作 | |
查找、替换命令 | /字符串 | 在很长的文件中,可以利用【/字符串】命令查找特定字符,例如:“/tcp”,如果搜索的字符串不是所要的,可以按【n】键往下继续查找,也可以使用【N】组合键反向查找 |
?字符串 | 在很长的文件中,可以利用【?字符串】命令查找特定字符,例如:“?tcp”,如果搜索的字符串不是所要的,可以按【n】键往上继续查找,也可以使用【N】组合键反向查找 | |
:%s/old/new/g | 全文替换指定字符串 | |
:n1,n2s/old/new/g | 在一定范围内替换指定字符串 | |
:n1, n2s/old/new/c | 会提示让选择是否替换 | |
忽略大小写 | :set ic | 忽略大小写 |
:set noic | 关闭忽略大小写 | |
命令 | !命令 | 在vim中执行命令 |
定义快捷键 | :map 快捷键 触发命令 | 定义快捷键 |
:unmap 快捷键 | 取消快捷键 | |
宏替换 | :ab | 【:ab sammail aaa@qq.com】当开始插入sammail时,就会变成后边的邮箱 |
:unab | 【:unab sammail】 |
3. 应用实例
3.1 导入文件
【:r /etc/files.txt】
3.2 使用【! 命令】在Vi中执行命令
将当前时间,导入文件:【:r !date】
3.3 定义快捷键:
【:map】 快捷键 触发命令
【:unmap 快捷键】取消快捷键
范例:
【:map ^p I#<ESC>】 按Ctrl+p进行注释(行首加#号)
【:map ^b 0x】Ctrl+B取消注释
注意:【^p】:快捷键输入方式 Ctrl + V + P
3.4 连续行注释
【:n1,n2s/^/#/g】#号注释
【:n1,n2s/^#//g】#号取消注释
【:n1,n2s/^/ \ / \ / /g】 // 注释
【^】表示行首
3.5 替换
【:ab sammail aaa@qq.com】
当开始插入sammail时,就会变成后边的邮箱
【:unab】取消
3.6 vim配置文件
当前用户家目录下【.vimrc】文件
在这个文件配置好后,每次打开vim都可以使用之前的设置