0. 快捷键
Vim中文帮助
1. 基本操作
快捷键 | 功能 |
---|
Esc | 从当前模式转换到“普通模式”。所有的键对应到命令 |
i | 插入模式,用于插入文字。回归按键的本职工作 |
: | “命令行模式”Vim希望你输入类似保存文档命令的地方 |
三种模式之间的关系如下图所示:
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
- w [filename] 将编辑的数据存储成另一个档案(类似另存新档)
- r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将[filename]这个档案内容加到游标所在行后面
- n1,n2 w [filename] 将n1到n2的内容存成filename这个档案
- !command 暂时离开vi到指令行模式下执行command的显示结果!例如,【:!ls /home】即可在vi当中察看/home底下以ls输出的档案信息!
- set nu 显示行号
- set nonu 与set nu相反,为取消行号
特别注意,在 vi/vim 中,数字是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。
举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前,如我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可。
2. 方向键
快捷键 | 功能 |
---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n\<space\> | 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20\<space\> 则光标会向后面移动 20 个字符距离。 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 set nu) |
gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) |
n\<Enter\> | n 为数字。光标向下移动 n 行(常用) |
3. 浏览文档
快捷键 | 功能 |
---|
( | 跳转到上一句 |
) | 跳转到下一句 |
{ | 跳转到上一段 |
} | 跳转到下一段 |
[[ | 跳转到上一部分 |
]] | 跳转到下一部分 |
[] | 跳转到上一部分的末尾 |
][ | 跳转到上一部分的开头 |
4. 插入文本
快捷键 | 功能 |
---|
a | 在光标后插入文本 |
A | 在行末插入文本 |
i | 在光标前插入文本 |
o | (小写字母o)在光标下方新开一行 |
O | (大写字母O)在光标上方新开一行 |
5. 特殊插入
快捷键 | 功能 |
---|
:r [filename] | 在光标下方插入文件[filename]的内容 |
:r ![command] | 执行命令[command],并将输出插入至光标下方 |
6. 删除文本
快捷键 | 功能 |
---|
x | 删除光标处字符 |
dw | 删除一个词 |
d0 | 删至行首 |
d$ | 删至行末 |
d) | 删至句末 |
dgg | 删至文件开头 |
dG | 删至文件末尾 |
dd | 删除该行 |
3dd | 删除3行 |
7. 简单替换文本
快捷键 | 功能 |
---|
r{text} | 将光标处的字符替换成{text} |
R | 进入覆写模式,输入的字符将替换原有的字符 |
8. 撤销/重做操作
快捷键 | 功能 |
---|
u | 撤销最后的操作 |
Ctrl+r | 重做最后撤销的操作 |
9. 搜索和替换
快捷键 | 功能 |
---|
/search_text | 检索文档,在文档后面的部分搜索search_text |
?search_test | 检索文档,在文档前面的部分搜索search_text |
n | 移动到后一个检索结果 |
N | 移动到前一个检索结果 |
:%s/original/replacement | 检索第一个“original”字符串,并将其替换成“replacement” |
:%s/original/replacement/g | 检索并将所有的“original”替换成“replacement” |
:%s/original/replacement/gc | 检索出所有的“original”字符串,但在替换成“replacement”前,先询问是否替换 |
10. 选择文本
快捷键 | 功能 |
---|
v | 进入逐字可视模式 |
V | 进入逐行可视模式 |
Esc | 退出可视模式 |
11. 改动选中文本
快捷键 | 功能 |
---|
~ | 切换大小写 |
d | 删除一个词 |
c | 变更 |
y | 复制 |
> | 右移 |
< | 左移 |
! | 通过外部命令进行过滤 |
12. 保存并推出
快捷键 | 功能 |
---|
:q | 退出vim,如果文件已被修改,将退出失败 |
:w | 保存文件 |
:w new_name | 用new_name作为文件名保存文件 |
:wq | 保存文件并退出 |
:q! | 退出vim,不保存文件改动 |
ZZ | 退出vim,如果文件被改动过,保存改动内容 |
ZQ | 与:q!相同,退出vim,不保存文件改动 |
参考:
Vim 快捷键一览表
Linux vi/vim
史上最全Vim快捷键键位图(入门到进阶)
评论