回炉-vim实用技巧-vim解决问题的方式

  |  

摘要: 本文是《vim实用技术》读书笔记的第 1 部分: vim 解决问题的方式。

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


vi-vim-cheat-sheet-sch.gif

《vim使用技巧》 绪论部分,一共六个技巧

Chap1 vim解决问题的方式

  • 技巧1 结识 . 命令
  • 技巧2 不要自我重复
  • 技巧3 以退为进
  • 技巧4 执行,重复,回退
  • 技巧5 查找并手动替换
  • 技巧6 结识 . 范式

技巧1 结识 . 命令

“上次修改”可以指很多东西, 一次修改的单位可以是字符、整行,甚至是整个文件。

>G 命令(G表示位置) 会增加从当前行到文档末尾处的缩进层级。如果我们在此命令后使用 . 命令,那么“重复上次修改”会让 Vim 增加从当前行到文档末尾的缩进层级。

我们可以把 . 命令当成一个很小的宏(参考Chap 11)

技巧2 不要自我重复

A 命令把两个动作($a)合并成了一次按键。不过它不是唯一一个这样的命令,很多 Vim 的单键命令都可以被看成两个或多个其他命令的组合。下表列出了类似的一些例子

复合命令 等效的长命令
C c$
s cl
S ^c
I ^i
A $a
o A<CR>
O ko

技巧3 以退为进

先删再写:例子

1
var foo = "method("+argument1+","+argument2+")";

改为
1
var foo = "method(" + argument1 + "," + argument2 + ")";

使修改可重复

f{char} 命令让 Vim 查找下一处指定字符出现的位置,如果找到了,就直接把光标移到那里

完成第一处修改后,我们可以重复按 f+ 命令跳到下一个 + 号所在的位置。不过,还有一种更好的方法可以用。 ; 命令会重复查找上次 f 命令所查找的字符

技巧4 执行,重复,回退

除了.命令外,有些命令能以其他的方式重复。例如, @: 可以用来重复任意 Ex 命令(在技巧 31 中讨论),或者我们也可以输入 & (参见技巧 92)来重复上次的 :substitute 命令(它本身也是一条 Ex 命令)。

技巧5 查找并手动替换

想把content替换为cppy,但是直接用 :%s/content/copy/g 可能会把不该换的也换了

对每个地方都要问“这里要修改吗?”,然后回答“修改”或者“不改”。substitute 命令也能胜任这项工作,我们将在技巧 89 中学到该怎么做

在单词上用 *或者# (和 . 命令一样也是vim单键命令)
在单词首的时候用 cw 命令,然后输入copy,这一步可以用 . 命令重复

技巧6 结识 . 范式

用一次按键移动,另一次按键执行 — 这是 . 范式追求的目标


Share