当前位置 知且行 其他 vim实用技巧 下一篇:

vim实用技巧

第1章 vim解决问题的方式

.命令

.命令表示“重复上次修改”,上次修改可以指定很多东西,一次修改的单位可以是字符、整行,甚至是整个文件

. 结合 >G 进行文本逐行缩进

逐行缩进

从进入插入模式开始到返回普通模式,vim会记录每一个按键操作。再用 . 命令会重新执行所有这些操作

. 命令就是一个微型的宏

在行末加分号

一键移动,另一键操作,这种配合太完美了

复合命令

A 命令是 $a 的合并操作,vim有不少类似的单键命令

单键命令

以退为进

以退为进

先后退一步,再前进三步。这样的好处在于将修改封装为可重复的操作,只要定位到下一个 + 号,就可以用 . 命令一键操作

可重复的操作以及回退

查找并手动替换

. 范式:用一次按键移动,另一次按键执行

第2章 普通模式

普通模式命令的强大,很大程度上源于它可以把操作符与动作命令结合在一起

动作+文本对象

daw

daw 命令可解读为 delete a word

分别对数字执行加和减操作。在不带次数执行时,会逐个加减;如果带一个次数前缀,可以加减任意整数

如:将光标定位到5,执行 10 就会变成15

如果光标不在数字上,会作用于光标之后的第一个数字

对数字进行加减

操作符+动作命令=操作

d{motion} 命令可以对一个字符(dl), 一个完整的单词(daw), 一整个段落(dap)进行操作,作用的范围由动作命令决定。

c{motion},y{motion}及其他命令也类似,这些统称为操作符(operator)

g~, gu, gU 要用两次按键,g 作为前缀字符,用于改变后面的按键行为。这些也称为操作符

操作符与动作命令的结合形成一种语法:一个操作由一个操作符,后面跟一个动作命令组成

如:daw 用于删除一个单词,将操作符由 d 换成 gU, 即 gUaw 便可将当前单词换成大写形式。如果将动作命令扩充为 ap,就能作用于整个段落

vim语法的额外规则:当一个操作符命令被连续调用两次时,它会作用于当前行,如 dd, >>

gU 命令是例外,须使用 gUgU 或 gUU 作用于当前行

vim操作符命令

第3章 插入模式

插入模式下的组合键

> 这些组合键非vim独有,在bash中也能使用

返回普通模式

返回普通模式

寄存器

寄存器

第4章 可视模式

v 进入可视模式,可视模式可以使用普通模式命令,如:viw 选中光标所在单词, c 删除该选中单词

V 激活面向行的可视模式

激活面向列的可视模式

可视模式

可视模式

在可视模式间切换

在可视模式间切换

切换选区的活动端

切换选区的活动端

重复执行面向行的可视命令

重复执行面向行的可视命令

进行大写转换

进行大写转换

在列间增加分隔竖线

在列间增加分隔竖线

向多行插入文本

向多行插入文本

在列块可视模式中为多行添加分号

在列块可视模式中为多行添加分号

第5章 命令行模式

操作缓冲区文本的Ex命令

操作缓冲区文本的Ex命令

普通模式命令一般操作当前字符或当前行,而Ex命令却可以在任意位置执行,这意味着无需移动光标就可以使用Ex命令做出修改

Ex命令脱颖而出的最让人赞叹的功能是拥有能够在多行上同行执行的能力

符号 . 代表当前行的地址 .,35d 表示删除当前行到35行的所有行

% 表示当前文件中的所有行,等效于 1,$

用模式指定范围

:/<html>/,/<\html>/p 使用于两个html标签之间的内容

:/<html>+1/,/<\html>-1/p 对选择范围加上偏移量

范围符号

范围符号

copy命令

copy命令

:6copy. 将第6行复制粘贴到当前行,可简写为:6t.

:t命令

move命令

move命令

@: 重复上次的Ex命令

在指定范围上执行普通模式命令

批量添加分号

也可以使用 :%normal A;

在执行指定的普通模式命令之前,vim会先把光标移到该行的起始处,如 :%normal i// 可以在所有行首加//

:normal 命令让我们可以把具有强大表现力的vim普通模式命令与具有大范围影响力的Ex命令结合在一起

<C-r><C-w>用于插入光标下的单词

转载必须注明出处:https://www.zhiqiexing.com/65.html

关于我

我希望能成为一个认真、有趣、创造更多价值的人
关注微信
微信扫一扫关注我

微信扫一扫关注我

返回顶部