一、入门
i -> insert模式,按esc返回Normal模式
x -> 删除当前字符
dd -> 删除当前行,并把删除的行存到剪贴板里(这不就是剪切一行嘛)
p -> 粘贴剪贴板
二、 熟悉
- 插入
a -> 在光标后插入
o -> 在当前行后插入一个新行
O -> 在当前行前插入一个新行
cw -> 替换光标所在位置后,到一个单词结尾到字符
- 光标移动基操
0 -> 到行头
$ -> 到行尾
^ -> 到本行第一个不是blank的字符位置
g_ -> 到本行最后一个不是blank到字符位置
/pattern 搜索pattern字符
- 拷贝/粘贴
p -> 粘贴,小p在后面粘贴,大P在前面
yy -> 拷贝当前行,相当于ddP
- Undo/Redo
u -> Undo
ctrl + r -> Redo
- 文件操作
:e <path/to/file> -> 打开一个文件
:w -> 存盘
:saveas <path/to/file> -> 另存为
:x/zz/:wq -> 保存并退出(:x仅在需要时候保存,zz不需要冒号和回车)
:q! -> 退出不保存
:qa! -> 强行退出所有正在编辑的文件,就算别的文件有更改
:bn/:bp -> 同时打开很多文件,使用这两个命令切换下一个(next)上一个(pre)文件
三、 更熟练
- 重复
. -> 重复上一次命令
n<command> -> 重复某个命令n次
- 光标移动
nG/:n -> 到第几行
gg -> 到第一行
G -> 最后一行
w -> 到下一个单词的开头
e -> 到下一个单词的结尾
% -> 匹配括号移动,首先把光标放到括号上
* -> 匹配光标当前所在单词,下一个
# -> 匹配光标当前所在单词,上一个
- 光标和命令组合
<start position><command><end position> -> 组合使用光标位置和命令
y -> 拷贝
d -> 删除
v -> 可视化选择
gU -> 大写
gu -> 小写
四、Vim全面掌握
- 在当前行上 移动光标
0 ^ $ g_ f t
fa -> 到下一个为a的字符处
t, -> 到逗号前的第一个字符
3fa -> 在当前行查找第三个出现的a
F/T -> 和f/t一样就是反向
dt" -> 删除所有的内容,知道遇到"字符
- 区域选择
<action>a/i<object>
action: 是任意命令(d/y/v)
na/i: n选择几层 a包含边界 i不包含边界
object: 是选择区域的条件,比如括号冒号包围的区域,或者是单词句子段落等。
w/W -> 单词, s -> 句子, p -> 段落, 特别的字符('"}])
- 块操作
ctrl + v -> 选择一些区域来操作
- 自动提示
ctrl + n/p -> 在insert模式下输入一个词的开头,如果改文档前面有出现过你想要输入的单词,则ctrl + n/p 就可以自动匹配上,否则没有匹配。
- 宏录制
qa -> 把你的操作记录在寄存器a
q -> 开始录制后退出录制
@a -> 会执行被录制到a的宏
@@ -> 重复执行最新录制的宏
- 可视化选择
J -> 把所有行变成一行,中间带空格
<</>> -> 左右缩进
= -> 自动缩进
A -> 在所有选择行后面添加字符串,按esc结束输入
- 分屏
:split -> 垂直分屏
ctrl + w + hjkl -> 切换分屏
ctrl + w + _/-/+ -> 设置分屏大小
:q -> 退出分屏
- 其他
ctrl + a -> 加1
Yp -> 复制当前行并粘贴在下一行
:set number/nu -> 临时显示行号
:set nonumber/nonu -> 临时取消行号
在~/.vimrc 里面添加 set number 永久显示行号
网友评论