Vi 编辑器 (二) - 常用命令
由 lugir 于 星期一, 02/01/2010 - 13:08 发布
Vi 编辑器命令大全
本页提供了完整的 vi 编辑器命令列表,有关 vi 编辑器的使用方法请查看《Vi 编辑器 (一) - 使用基础》
本页提供了完整的 vi 编辑器命令列表,有关 vi 编辑器的使用方法请查看《Vi 编辑器 (一) - 使用基础》
一般模式 | 移动光标 |
方向键 上、下、左、右 | 光标向上下左右移动一个字符 |
字母 h, j, k, l | 光标向左下上右移动一个字符 |
ctrl+b 或 PageUp | 屏幕向上翻一页 |
ctrl+f 或 PageDown | 屏幕向下翻一页 |
ctrl+u | 屏幕向上翻半页 |
ctrl+d | 屏幕向下翻半页 |
+ | 光标移动到非空格符的下一列 (用于跳开空行) |
- | 光标移动到非空格符的上一列 |
n[空格] | 输入数字(n),然后按空格,光标向右移动 n 个字符 |
0 | 光标移动到本行起始处 |
$ | 光标移动到本行末尾处 |
H | 光标移动到屏幕最上方那一行 |
M | 光标移动到屏幕中央那一行 |
L | 光标移动到屏幕最下方那一行 |
G | 光标移动到屏幕最后一行 |
nG | 输入数字(n),再按G,光标会移动到文件第 n 行 (使用 :set nu 可在 vi 编辑器中显示行号) |
n[回车] | 输入数字(n),然后按回车,光标向下移动 n 行 |
一般模式 | 搜索与替换 |
/word | 从光标处开始,向后搜索文本中出现 word 的字符串 |
?word | 从光标处开始,向前搜索文本中出现 word 的字符串 |
:1,$s/word1/word2/g | 在第 1 行与最后一行之间搜索 word1,并将其替换为 word2 |
:n1,n2s/word1/word2/g | 在第 n1 行与第 n2 行之间搜索 word1,并将其替换为 word2 |
:1,$s/word1/word2/gc | 在第 1 行与最后一行之间搜索 word1,并将其替换为 word2,替换前需要用户确认 |
一般模式 | 删除 (剪切)、复制与粘贴 |
x, X | x 为向后删除一个字符,X 为向前删除一个字符 |
nx | 向后删除 n 个字符 |
dd | 删除光标所在行 |
ndd | 从光标处开始删除 n 行 |
d1G | 删除光标到第 1 行的所有内容 |
dG | 删除光标到最后一行的所有内容 |
yy | 复制光标所在行的内容 |
nyy | 从光标处开始复制 n 行的内容 |
y1G | 复制光标到第 1 行的所有内容 |
yG | 复制光标到最后一行的所有内容 |
p, P | p 为将复制或剪切的内容粘贴在光标下一行,P 为粘贴在上一行 |
J | 将光标所在列与下一列结合成同一列 |
u | 撤消上一操作 |
编辑模式 | |
i | 进入编辑模式 |
a | 进入编辑模式,将光标向后移动一位 |
o | 进入编辑模式,在光标处插入一个空行 |
r[字符] | 按下 r 键,再按任意字符键,将光标所在处的字符替换成新输入的字符 |
Esc | 退出编辑模式 |
一般模式 | 管理命令 |
:w | 保存 |
:w! | 强制保存 |
:q | 退出 vi 编辑器 |
:q! | 强制退出 (不想保存时使用此命令) |
:e! | 撤消所有编辑 |
ZZ | 保存并退出 |
:w [文件名] | 另存为... |
:r [文件名] | 读取另一个文档的内容,内容追加到光标所在行之后 |
:set nu | 在 vi 编辑器中显示行号 |
:set nonu | 取消行号 |
n1,n2 w [文件名] | 将第 n1 行与第 n2 行之间的内容另存为... |
:! [命令] | 暂时离开 vi 编辑器,并在 shell 中执行命令 |