Vim/Vi 简介
Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。Vim/Vi 没有菜单,只有命令。
插入命令
命令 | 作用 |
a | 在光标后附加文本 |
A | 在本行行末附加文本 |
i | 在光标前插入文本 |
I | 在本行开始插入文本 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
定位命令
命令 | 作用 |
h、方向左键 | 左移一个字符 |
j、方向下键 | 下移一行 |
k、方向上键 | 上移一行 |
$ | 移至行尾 |
0 | 移至行首 |
H | 移至屏幕上端 |
M | 移至屏幕中央 |
L | 移至屏幕下端 |
:set nu | 设置行号 |
:set nonu | 取消行号 |
gg | 到第一行 |
G | 到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
删除命令
命令 | 作用 |
x | 删除光标所在处字符 |
nx | 删除光标所在处(含)后n个字符 |
dd | 删除光标所在行 |
ndd | 删除光标所在行(含)后n行 |
dG | 删除光标所在行(含)到文件末尾的所有内容 |
D | 删除从光标所在处(含)到本行行尾的内容 |
:n1,n2d | 删除从第n1行(含)到第n2行(含)的内容 |
复制和剪切命令
命令 | 作用 |
yy、Y | 复制当前行 |
nyy、nY | 复制当前行(含)以下n行 |
dd | 剪切当前行 |
ndd | 剪切当前行(含)以下n行 |
p | 粘贴在当前光标所在行下 |
P | 粘贴在当前光标所在行上 |
替换和取消命令
命令 | 作用 |
r | 取代光标所在处字符 |
R | 从光标所在处开始替换字符,按ESC结束 |
u | 取消上一步操作 |
搜索和替换命令
命令 | 作用 |
/string | 向后搜索指定字符串 |
n | 下一个 |
N | 上一个 |
:set ic | 搜索时忽略大小写 |
:set noic | 取消搜索时忽略大小写 |
:%s/old/new/g | 全文替换指定字符串,把g换成c在替换时会询问确认 |
:n1,n2s/old/new/g | 在指定范围内替换指定字符串 |
保存和退出命令
命令 | 作用 |
:w | 保存修改 |
:w newfilename | 另存为指定文件 |
:wq | 保存修改并退出 |
ZZ | 快捷键,保存修改并退出 |
:q! | 不保存修改并退出 |
:wq! | 保存修改并退出(文件所有者和root可以忽略文件的只读属性) |
其它命令或技巧
命令 | 作用 |
:r file | 导入指定文件内容到当前光标的在行下 |
:!命令 | 在vi里执行命令 |
:r !命令 | 导入命令的执行结果到当前光标所在行下 |
:map 快捷键 触发命令 | 定义快捷键 |
:unmap 快捷键 | 取消快捷键 |
:n1,n2s/^/#/g | 在指定范围行首加上注释# |
:n1,n2s/^#//g | 去掉指定范围行首的注释# |
:n1,n2s/^/\/\//g | 在指定范围行首加上// |
:ab mymail hczhch@yeah.net | 空格或回车后自动替换 |
:unab mymail | 取消自动替换 |