# 前言
vim 模式:
理解:vim接口本身是一种编程
# 查看帮助
tldr vimman vim- 命令模式下输入
:help <参数>, 可以通过前缀进一步指定上下文, 更多上下文及说明参见 help-summary (opens new window)

# 正常模式
u: 撤销你做的最后一次更改(编辑模式下的全部内容,或可视模式下的删除、替换等)ctrl r: redo
# 移动
详见官方中文文档 (opens new window)非常详细
hjkl: 左下上右
k
h l
j
1
2
3
2
3
w(word): 光标向后移动一个词b(backward): 光标向前移动一个词e(end): 光标移动到单词末尾,已在末尾则移动到下个词尾0: 移动到行首$: 移动到行尾^: 移动到行中第一个非空ctrl u: 向上滚动(约半屏)ctrl d: 向下滚动(约半屏)G(大写): 滚动到尾f 2: 找到后面的2F 2: 找到前面的2t 2: 找到后面的2,光标停在2前面T 2: 找到前面的2,光标停在2后面%: 如过当前光标停留不同类型的分组上,如(),[],可使用%在匹配的括号之间来回跳转;: 重复前次 "f"、"F"、"t" 或 "T" 命令,: 以相反方向重复前次 "f"、"F"、"t" 或 "T" 命令
# 编辑
x: 删除当前字符r 2: 替换当前选中字符为2~: 大小写转换
d: 删除
尝试与上面移动键组合
o: 在当前行的下一行进入编辑模式d w: 删除后面一个单词d b: 删除前一个单词d d: 删除当前行
c(change): 删除并编辑
尝试与上面移动键组合,它会删除从当前位置到光标移动到的目标位置 的全部内容。
c c: 删除当前行,光标移动到行首进入编辑模式
y: 复制****
尝试与上面移动键组合,它会复制从当前位置到光标移动到的目标位置 的全部内容。
p:粘贴
# 计数
尝试与上面编辑、移动符号组合
d4d: 删除4行
5j: 向下移动5行
d5w: 删除5个词
# 修饰符
i: inside
a 整体
eg:
ci(: 删除光标()中的内容,进入编辑模式
c%: 如当前光标停留在(,删除()及()中的内容
da(: 删除光标所在,被()包裹的内容
# 可视模式
正常模式按 v 进入,按移动键选择
# VISUAL BLOCK 模式
正常模式按ctrl v进入,按移动键选择,跨行选择矩形文本块
# 命令模式
正常模式按:进入
:tabnew: 新建tab
:/关键词:搜索关键词,光标跳转到关键词处
:set mouse=a: 启动对鼠标的支持
:qa!: 离开 Vim,(当心,所有的改动都会丢失!)
set nu 或者 set number : vim显示行数
# 相关链接
[2] 官方中文手册-总览 (opens new window)
# 随记
- -g: E25: GUI cannot be used: Not enabled at compile time