vim¶
@20190323 新版功能: 新建,编辑及插件
编辑操作¶
模式¶
- Normal 模式:按下 Esc 键回到正常(Normal)模式
定位¶
移动
h 左 j 下 k 上 l 右 跳转
- 可以用于编辑操作的跳转动作
w 从当前光标位置到下一个单词起始处,不包括它的第一个字符。 e 从当前光标位置到单词末尾,包括最后一个字符。 b 从当前光标位置到单词起始,包括第一个字符。 ^ 从当前光标位置到当前非空白字符行首。 0 从当前光标位置到当前行首。 $ 从当前光标位置到当前行末。 #$ 从当前光标位置到下第 # 行末。 gg 跳转到文件第一行。 G 到文件的底部。 % 匹配 {},(),[] 之间跳转。 H 从当前光标位置到当前屏幕的顶部。 M 从当前光标位置到当前屏幕的中部。 L 从当前光标位置到当前屏幕的底部。 #H 跳转到当前屏的第 # 行。 #L 跳转到当前屏的到数第 # 行。 ( 跳转到当前的段首。 ) 跳转到当前的段尾。 { 跳转到上一个空行。 } 跳转到下一个空行。 [{ 跳转到目前区块开头。 ]} 跳转到目前区块结尾。 zt 设置当前光标位置为屏顶。 zz 设置当前光标位置为屏中。 zb 设置当前光标位置为屏底。 :# 跳转到第 # 行。 #G 跳转到第 # 行。 ⌃ + b 向后翻一页。 ⌃ + f 向前翻一页。 ⌃ + u 向后翻半页。 ⌃ + d 向前翻半页。 ⌃ + e 向下滚动一行。 选择
V 选择一行。 ^ + V 矩形选择。
编辑(增删改查)¶
新增
i 光标前插入 I 在当前行首插入 a 光标后插入 A 当前行尾插入 O 在当前行之前插入新行 o 在当前行之后插入新行 删除
x 删除光标所在位置的字符 X 删除光标所在位置前的字符 D 删除到行尾 dd 删除光标所在行。 - d <number> motion,其中
- d 删除操作符
- number 可选数字,表示后续对象的个数
- motion 操作符的操作对象,参考 跳转动作。
- aB {} 及其内的内容。
- iB {} 中的内容。
例如,d$ 表示从当前光标删除到行末。
- d <number> motion,其中
修改
r 替换光标所在位置的字符。 R 替换光标所到之处的字符。 C 修改到行尾。 s 替换当前一个光标所处字符。 c i ' 修改配对标点中的文本内容。 d i ' 删除配对标点中的文本内容。 y i ' 复制配对标点中的文本内容。 v i ' 选中配对标点中的文本内容。 - c <number> motion,其中 motion 参考 跳转动作。
查找:
/ 输入关键字查找。n/N 向后/前继续。 ? 输入关键字查找。n/N 向后/前继续。 * 在当前页向后查找同一字。 # 在当前页向前查找同一字。 复制
- y <number> motion,其中 motion 参考 跳转动作。
Y 复制当前行到缓冲区,同 yy p 将最后一次复制/删除的内容置入光标之后 大小写转换
gUU 将当前行的字母改为大写。 guu 将当前行的字母改为小写。 gUw 将当前光标后的单词改为大写。 guw 将当前光标后的单词改为小写。 gggUG 全文大写。 ggguG 全文小写。 其它:
u 撤消最后执行的命。 U 撤消对整行的修改。 J 当前行和下一行合并成一行。 ⌃ + r 撤消以前的撤消命令,恢复以前的操作结果 退出
:w <filename> | 保存当前编辑的文件 |
:wq <filename> | 保存当前编辑的文件后退出 |
:q! | 退出不保存 |
:w !sudo tee % | 保存无权限的已编辑文件 |
窗口操作¶
⌃ + w p | 在两个分割窗口之间来回切换。 |
⌃ + w j | 跳到下面的分割窗 |
⌃ + w h | 跳到左边的分割窗。 |
⌃ + w k | 跳到上面的分割窗。 |
⌃ + w l | 跳到右边的分割窗。 |
文件状态¶
- ⌃ + g 显示当前编辑文件中当前光标所在行位置以及文件状态信息
插件¶
~/.vim/pack/bundle:
- start: added to your runtime path when Vim starts up.
- opt: add these to your runtime path when you need them by using the :packadd command.