vim推荐配置:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
0. 规定
Ctrl-λ 等价于 <C-λ>
:
command
等价于
:command <回车>
n 等价于 数字
blank字符 等价于 空格,tab,换行,回车等
1. 命令模式 -> NORMAL
<operation> 其他 <motion>
1.0 复制
- yy 等价于 shift + y → 复制当前行
- nyy → 从本行向下,复制n行
- yw → 从光标开始复制到这个单词尾
- nyw → 从光标开始复制到n个单词尾
1.1 删除字符
-
x
→ 删除光标所在的一个字符 s → 删除光标所在的一个字符 并 进入插入模式 - X → 删除光标前一个字符
-
n
x
→ 删除光标所在的n字符 - nX → 删除光标前n一个字符
-
dt字符
→ 删除所有的内容,直到遇到字符- 比如dt"表示从当前光标开始 一直删除 直到''
1.2 查找
-
f + 字符 → 查找字符
-
df + 字符 → 从这个光标开始 一直 删除到字符结束
-
cf + 字符 → 从这个光标开始 一直 删除到字符结束 并进入插入模式
1.3 命令 → 插入模式
- i → 光标不动 并 进入插入模式
-
a
→ 光标向后 并 进入插入模式 -
o
→ 向下新增一行 并 进入插入模式 -
O
→ 向上新增一行 并 进入插入模式 -
cw
→ 从光标位置 删除 连续字符 并 进入 插入模式(可以有多种组合) - cnw → 从光标位置 删除 连续n字符 并 进入 插入模式(可以有多种组合)
- shfit + i → 光标移动到行首 并 进入插入模式
- shift + a → 光标移动到行尾 并 进入插入模式
1.4 简单的光标移动
-
0
→ 数字零,到行头 - <C-4>→ 到本行行尾
- <C-6>→ 到本行第一个不是blank字符的位置
-
g_
→ 到本行最后一个不是blank字符的位置
1.5 对文件操作
-
:e <path/to/file>
→ 打开文件 -
:w
→ 保存文件 -
:q!
→ 退出文件 且 不保存 -
:x
,ZZ
或:wq
→ 保存并退出 (:x
表示仅在需要时保存,ZZ不需要输入冒号并回车) -
:saveas <path/to/file>
→ 另存为<path/to/file>,还会打开这个文件
-
:bn
和:bp
→ 切换文件,下一个文件,上一个文件 (n表示next,p表示prev) - :n 文件名→ 切换到这个文件
1.6 重复命令
-
.
→ (小数点) 可以重复上一次的命令 - N<command> → 重复某个命令N次
1.7 高效的光标移动
1.7. 1 按行移动
-
gg
→ 到第一行 - G → 到最后一行
-
数字+
G
→ 到第 几行,或者: 数字→到第几行 - n + enter→ 向下跳几行
1.7.2 按单词移动
以默认方式(字母,数字和下划线) 为分割符
-
w
→ 移动到下一个单词的开头。b 则表示 上一个单词的开头 -
e
→ 移动到本单词 或 下一个单词的结尾。
以blank字符为分隔符
-
shift + w → 到下一个单词的开头,shift + b 则表示 上一个单词的开头
- shift + e → 移动到本单词 或 下一个单词的结尾。
1.7.3 (最强)在同一行的光标移动
从左向右 (正方向)
- f+字符→光标移动到这个字符处
- t+字符→光标移动到这个字符的前一个位置
从右向左 (反方向)
- shift + f+字符→光标移动到这个字符处
- shift + t+字符→光标移动到这个字符的后一个位置
注: 数字 + f + 字符→移动到当前的第几个字符上
注:
1.8 字符大小写转换
-
~ → 完成光标所在位置字符的大小写切换
-
n~ → 完成光标所在位置开始往后的n个字符的大小写切换
1.9 最强的光标移动
-
%
: 匹配括号移动,包括(
,{
,[
.(需要把光标先移到括号上) -
*
和#
: 匹配光标当前所在的单词,移动光标到下一个(或上一个)
匹配单词(*是下一个,#是上一个)
1.10 翻页
-
<C-b>
→ 上翻一页 -
<C-f>
→ 下翻一页 -
<C-u>
→ 上翻半页 -
<C-d>
→ 下翻半页
1.11 替换字符
- r → 替换光标所在位置的字符
- R → 替换光标所到位置的字符,直到按下「Esc」键为止
1.12 (重要)区域选择
<action>a<object>
或<action>i<object>
-
action可以是任何的命令,如
d
(删除),y
(拷贝),v
(可以视模式选择)。 - object 可能是:
w
一个单词,W
一个以空格为分隔的单词,s
一个句字,p
一个段落。也可以是一个特别的字符:"、
'、
)、
}、
]。
<action>a<object>(包括object),
<action>i<object>(不包括object),
1.13 (重要)块操作: <C-v>
1.13.1 快速注释
- 按下 ctrl+v 进入可视化模式;
- 上下键(只是上下键)移动光标,选中多行的开头;
- 按下大写的I,此时进入insert插入模式;
- 输入要插入的注释符,如:#、//;
- 按下ESC,就会看到多行代码被注释。
1.14 (重要)自动提示
<C-n>
和<C-p>
-
<C-n> 表示自动补齐的下一个
<C-p> 表示自动补齐的上一个
1.15 宏录制: qa 操作序列 q, @a, @@
-
qa
把你的操作记录在寄存器a。
- q : 停止录制
- 于是
@a
会replay被录制的宏。 -
@@
是一个快捷键用来replay最新录制的宏
1.15.1实际操作->快速编号
注 : Y 等价于 yy
-
qaYp<C-a>q
→-
qa
开始录制 -
Yp
复制当前行,并粘贴 -
<C-a>
增加1 -
q
停止录制
-
-
先预执行一次: @a
→ 在1下面写下 2 -
重复执行多次 @@
→ 在2 正面写下3 - 现在做
5@@
会创建新的5行,并把数据增加到 8
2. 可视化模式
-
v
→进入单个选择
-
V
→进入行选择
-
<C-v>
→进入块选择
2.1 实际操作 -> 在所有行尾加;
<C-v>
-
选中相关的行 (可使用
j
或<C-d>
或是/pattern
或是%
等……) - $ 到行最后
-
A+字符
,按ESC。
2.2 其他操作
-
J
→ 把所有的行连接起来(变成一行) -
<
或>
→ 左右缩进 -
=
→ 自动给缩进(非常好用)
3. 底行模式->COMMAND
- : vs+文件名:分屏操作
-
:wq
→ 存盘 + 退出 (:w
存盘,:q
退出) -
:help <command>
→ 显示相关命令的帮助。你也可以就输入:help
而不跟命令
(退出帮助需要输入:q) - :!cmd:不退出vim执行对应的命令(执行命令行,编译,运行,查看man等等)
-
/pattern
→ 搜索pattern
的字符串(如果搜索出多个匹配,可按n键到下一个)
4. 分屏操作
4.1 分屏启动Vim
- vim -On file1 file2 ... 使用大写的O参数来垂直分屏。
- vim -on file1 file2 ...使用小写的o参数来水平分屏。
4.2 创建水平 && 垂直分屏
-
:split
→ 创建水平分屏 等价于<C-w> +
s -
:vsplit
→ 创建垂直分屏 等价于<C-w> + v
- :sp filename 上下分割,并打开一个新的文件。
- :vsp filename 左右分割,并打开一个新的文件。
4.3 关闭分屏
-
<C-w>
c 关闭当前窗口。 -
<C-w>
q 关闭当前窗口,如果只剩最后一个了,则退出Vim。
4.3 在分屏中移动光标
-
<C-w> + dir
: dir就是方向,可以是hjkl
或是 ←↓↑→ 中的一个,其用来切换分屏。 -
<C-w>+ w
:
4.4 更改分屏的屏幕尺寸
-
<C-w>
+ = : 让所有的屏都有一样的高度。 -
<C-w>
+ : 增加高度 -
<C-w>
- : 减少高度 - <C-w> + _ : 最大化尺寸
5. vim改键位的操作
文章来源:https://www.toymoban.com/news/detail-697790.html
文章来源地址https://www.toymoban.com/news/detail-697790.html
- vim的配置文件都在vimrc里面
- nnoremap 新按键 老按键
到了这里,关于vim练级攻略(精简版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!