Vim
Vim 的工作模式
vim 有6种工作模式。
- 普通模式:使用 vim 打开一个文件时默认模式。也叫命令模式,运行用户通过各种命令浏览代码、滚屏等操作。
- 插入模式:也可以叫做编辑模式,在普通模式下敲击i、a 或 o 就进入插入模式,允许用户通过键盘输入、编辑。
- 命令行模式:在普通模式下,先输入冒号
:
,接着输入命令 ,就可以通过配置命令对 vim 进行配置了,如改变颜色主题、显示行号等,这些配置命令也可以保存到/etc/vim/vimrc配置文件中,每次打开默认配置执行。 - 可视化模式:在普通模式下敲击键盘上的 v 键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作。
- 替换模式:如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击
R
键就可以直接替换。 - EX模式:类似于命令行模式,可以一次运行多个命令。
vim 的各种工作模式可以通过不同的键进行切换,用户统一使用ESC
键返回到普通模式。
命令模式
用户刚刚启动vim,便进入里命令模式
此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下i
,并不会输入一个字符,i
被当作了一个命令。
以下是普通模式常用的几个命令:
i
– 切换到输入模式,在光标当前位置开始输入文本。x
– 删除当前光标所在处的字符。:
– 切换到底线命令模式,以在最底一行输入命令。a
– 进入插入模式,在光标下一个位置开始输入文本。o
– 在当前行的下方插入一个新行,并进入插入模式。O
– 在当前行的上方插入一个新行,并进入插入模式。dd
– 删除当前行。yy
– 复制当前行。p
(小写)– 粘贴剪贴板内容到光标下方。P
(大写)– 粘贴剪贴板内容到光标上方。u
– 撤销上一次操作。Ctrl + r
– 重做上一次撤销的操作。:w
– 保存文件。:q
– 退出 Vim 编辑器:q!
– 强制退出 Vim 编辑器,不保存修改。
若要编辑文本,只需要启动 Vim,进入了命令模式,按下i
切换到输入模式即可。
命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。
输入模式
在命令模式下按下i
就进入了输入模式,使用Esc
键可以返回到普通模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shifi组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标输入为输入\替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:
(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- :w: 保存文件
- :q: 退出 Vim 编辑器
- :wq: 保存文件并退出 Vim 编辑器
- :q!: 强制退出 Vim 编辑器,不保存修改
按ESC
键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
Vim 的按键说明
第一部分:命令模式可用的光标移动、复制粘贴、搜索替换等
移动光标的方法 | |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可! | |
Ctrl + f | 屏幕『向下』移动一页,相当于 Page Down 按键 (常用) |
Ctrl + b | 屏幕『向上』移动一页,相当于 Page Up 按键 (常用) |
Ctrl + d | 屏幕『向下』移动半页 |
Ctrl + u | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n『空格』 | 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20『空格』 则光标会向后面移动 20 个字符距离。 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) |
n『 Enter 』 | n 为数字。光标向下移动 n 行(常用) |
搜索替换 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xiaowen's Blog!