KXH-WIKI
简明教程
模式类型
- Normal:文件移动;
- Insert:插入文本;
- Replace:替换文本;
- Visual:选择文本;
- Command:运行命令;
模式切换
- 默认模式为 Normal;
- 任意默认使用
ESC
返回 Normal;
- 普通模式使用快捷键进入其他模式;
i
:Insert;
R
:Replace;
v
:Visual;
V
:Visual (line);
Ctrl + V
:Visual(block);
:
:Command;
- 推荐将
Caps
映射为 ESC
;
缓冲区, 窗口和标签
- 一个文件对应一个缓冲区;
- 一个 Vim 具有多个标签;
- 一个标签具有多个窗口 (分屏);
- 一个窗口显示一个缓冲区;
常用命令
Command
- 操作文件;
- 关闭::q;
- 保存::w;
- 关闭并保存::wq/:x;
- 打开缓冲区::
e{fileName}
;
- 显示缓冲区列表:ls;
- 强制操作:以上操作之前添加 !;
- 分割窗口;
- 分割:sp/vsp;
- 改变活动窗口:
<Ctrl + W><hjkl>
;
- 互换分屏窗口:
<Ctrl + W>, r
;
- 关闭分屏窗口;
- 关闭当前窗口:
<Ctrl + W>, c
;
- 保留当前分屏::only;
- 关闭当前分屏::hide;
Normal
- 基本移动:左下上右 (hjkl)
- 单词;
- w:下一单词;
- b:单词开头;
- e:单词结尾;
- *:光标当前单词的下一个出现位置;
- %:跳转相应 (,{,[;
- 行;
- 0:行开头;
- ^:第一个非空白字符;
- $:行结尾;
- 屏幕;
- 滚动;
- ctrl-u:向上滚动半屏;
- ctrl-d:向下滚动半屏;
- zz:当前位置设置为屏幕中间;
- 文件;
- 行号;
- :
{number}<CR>/:{number}G
:移动至第 number 行;
- 查找;
f{character}
:当前行第一个 character;
- fa:当前行 a 下一个出现位置;
- fa;:a 下一个出现位置;
- fa,:a 上一个出现位置;
- 3fa:当前行 a 第三次出现位置;
- t
{character}
:当前行第一个 character 的前一个字符;
- 插入:进入 Insert 模式;
- i:当前光标插入;
- o:当前行上方插入;
- O:当前行下方插入;
- a:光标后插入;
- 替换:
c{motion}
;
- cw:替换光标至单词末尾内容;
- c$:替换光标至行尾内容;
- c0:替换光标至行首内容;
- s:替换字符,等同于 cl;
- 删除:
d{motion}
;
- dw/d$/d0 (删除单词/至行尾/至行首);
- dd:删除并赋值当前行;
dt{character}
:删除至 character;
- x:删除字符,等同于 dl;
- 复制:
y{motion}
;
- 粘贴;
- u:撤销;
- 提示
Ctrl + n
;
- 重复执行上一条命令:。;
- 重复执行特定动作 N 次;
- 3w:向前移动 3 个单词
- 5j:向下移动 5 行;
- 7dw:删除 7 个单词;
- 配合移动指定对应命令;
<start position><command><end position>
;
Visual
行选中
- Visual 模式使用;
<action>i<object>
或 <action>a<object>
;
矩形块
0<Ctrl-v><Move><action>[ESC]
;
- 0:跳转至当前行第一列;
<Ctrl-v>
:块选择;
<Move>
:移动块;
<action>
:插入;
键位图
