- Published on
Vim使用手册
简介
vim 是一个向上兼容 vi 的文本编辑器,可用于编辑各种纯文本,在服务器上编辑文件时特别有用。1
模式类型
命令模式
- 敲击键盘动作会被识别为命令。编辑模式
- 字符按键以及 shift 组合用以输入字符。底线命令模式
- 底线命令模式可以输入单个或多个字符的命令,用于文件保存等操作。
模式转换
命令模式 -> 编辑模式
i
- 在光标所在处输入a
- 在光标在处后方输入o
- 在光标所在处的下方打开一个新行I
- 在光标所在行的行首输入A
- 在光标所在行的行尾输入O
- 在光标所在处的上方打开一个新行
命令模式 -> 底线命令模式
:
编辑模式 -> 命令模式
ESC
底线命令模式 -> 命令模式
ESC
关闭文件
命令模式
ZZ
- 保存并退出ZQ
- 不保存直接退出
底线命令模式
q
- 退出q!
- 强制退出,不保存此前的编辑操作w
- 保存wq
- 保存并退出x
- 保存并退出w /PATH/TO/FILE
- 保存到指定文件
命令模式光标跳转
行首行尾跳转
^
- 跳转至行首的第一个非空白字符0
- 跳转至行首$
- 跳转至行尾
行间跳转
#G
- 跳转至由#指定的行1G/gg
- 第一行G
- 最后一行
句间跳转
)
- 下一句(
- 上一句
段间跳转
}
- 下一段{
- 上一段
翻屏
Ctrl+f
- 向文件尾翻一屏Ctrl+b
- 向文件首部翻一屏Ctrl+d
- 向文件尾部翻半屏Ctrl+u
- 向文件首部翻半屏Enter
- 按行向后翻
当前页跳转
H
- 页首M
- 页中间行L
- 页底zt
- 将光标所在当前行移到屏幕顶端zz
- 将光标所在当前行移到屏幕中间zb
- 将光标所在当前行移到屏幕底端
编辑命令
字符编辑
x
- 删除光标所在处的字符#x
- 删除光标所在处起始的#个字符xp
- 交换光标所在处的字符与其后面的字符的位置r
- 替换光标所在处的字符
删除命令
d$/D
- 删除光标所在位置到行尾的字符d^
- 删除光标所在位置到非空行首的字符d0
- 删除光标所在位置到行首的字符dw
- 删除光标所在位置到下个单词词首的字符de
- 删除光标所在位置到当前单词或下个单词词尾的字符db
- 删除光标所在位置到当前单词或上一个单词单首的字符dd
- 删除光标所在处的行#dd
- 删除光标所处的行起始的共#行
粘贴命令
p
- 缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后方P
- 缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方
复制命令
y$
- 复制光标所在位置到行尾的字符y^
- 复制光标所在位置到非空行首的字符y0
- 复制光标所在位置到行首的字符ye
- 复制标所在位置到当前单词或下个单词词尾的字符yw
- 复制光标所在位置到下个单词词首的字符yb
- 复制光标所在位置到当前单词或上一个单词单首的字符yy
- 复制一整行#yy
- 复制#行
其他编辑操作
u
- 撤销此前的操作#u
- 撤销此前的#个操作
地址定界
:#
特定的第#行,例如 5 即第 5 行
查找
/PATTERN
- 从当前光标所在处向文件尾部查找能够被当前模式匹配的所有字符串?PATTERN
- 从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串n
- 下一个,与命令方向相同N
- 上一个,与命令方向相反
查找并替换
s/要查找的内容/替换为的内容/修饰符
- 示例:%s@<t([[:alpha:]]+)>@T\1@g %s@<t[[:alpha:]]+>@&er@g要查找的内容
- 可使用正则表达式替换为的内容
- 不能使用正则表达式,但可以引用,如果要查找的内容
部分在模式中使用分组符号,在替换为的内容
中使用后向引用,直接引用查找模式匹配到的全部文本,要使用&符号修饰符
i
:忽略大小写;g
:全局替换,意味着一行中如果匹配到多次,则均替换