Vim实用技巧(2)——普通模式
普通模式
技巧7 停顿时请移开画笔
普通模式是Vim的自然放松状态
技巧8 把撤销单元切成块
让每个“可撤销块”对应一次思考过程。
使用<Esc>o
另起一行,而不是<Enter>
技巧9 构造可重复的修改
反向删除
db
:删除从光标起始位置到单词开头的内容,但是会留下最后一个字母,还需按一次x
正向删除
先用b
命令移到单词开头,用dw
命令删除整个单词。
删除整个单词
daw
: delete a word
注意:.
命令能够重复 daw
技巧10 用次数做简单的算术运算
- 利用
yyp
复制并粘贴当前行 cw
修改单词180<C-x>
跳到该行第一个数字上,并减去180- 传统做法是
f0
,再i-18<Esc>
- 传统做法是
注意:vim会把0开头的数字解释为八进制值,若想把所有数字当成十进制,将下面这行加入.vimrc
:
set nrformats=
技巧11 能够重复,就别用次数
d2w
、2dw
、dw.
当使用.
命令意义不大时,采用次数风格,其能保留一个干净、连贯的撤销历史记录
技巧12 双剑合璧,天下无敌
操作符 + 动作命令 = 操作
d{motion}
:一个字符dl
, 一个完整单词daw
, 一整个段落dap
c{motion}
y{motion}
Vim的操作符命令
命令 | 用途 |
---|---|
c |
修改 |
d |
删除 |
y |
复制到寄存器 |
g~ |
反转大小写 |
gu |
转换为小写 |
gU |
转化为大写 |
> |
增加缩进 |
< |
减少缩进 |
= |
自动缩进 |
! |
使用外部程序过滤{motion}所跨越的行 |
一条额外的规则:一个操作符命令连续调用两次,会作用于当前行。
dd
:删除当前行>>
:缩进当前行gUgU = gUU
:当前行改为大写