像打咏春一样使用Vim(Vim零插件提速策略)

像打咏春一样使用Vim(Vim零插件提速策略)_第1张图片
图片源自网络

“我学功夫,从15岁开始,每天挥刀500下,这个数管住了我。从今天起,我以你为约束。”

--电影《师傅》

看过甄子丹演的《叶问》三部曲,陈国坤演的《李小龙传奇》最喜欢廖凡演的《师傅》(台词精炼,耐人寻味)。咏春拳给我的印象是招数简单实用,攻防兼备,常以速度制胜。这跟 Vim 的哲学有异曲同工之妙。甚至觉得有时候用 Vim 编程感觉像练功,没有 IDE 那样繁多的提示和功能,纯粹的写代码。这里总结点儿我平时使用 Vim 的窍门,让你用起 Vim 来像咏春一样快(快速移动光标),狠(疯狂码字),准(准确删除/修改)

  • Part1:手指不要轻易离开主键区
  • Part2:让光标跟上眼睛
  • Part3:Vim 语熟于心
  • Part4:常用 Vim 语实战(会持续更新)

Part1:手指不要轻易离开主健区

像打咏春一样使用Vim(Vim零插件提速策略)_第2张图片
键盘上的主键区(图片源于网络)

咏春:中門論 ─人體中門最弱,是攻擊目標,也是重點守護的地方。

要提高使用Vim的效率,在保证功能的情况下,尽量缩小打字的范围,守护我们的“中门”(主键区)。这里有几点建议:

  1. 不用 方向键,用 hjkl (入门基本素养)
  2. 不用 Esc,用 control + [
  3. 不用 Back Space,用 x/D/c/C
  4. 把键盘上的 Cap Lock 换成 Control
  5. 常用ctrl + p ctrl + n补全输入
  6. 常用.(英文句号)重复上一个命令
  7. 盲打(进阶必备素养)
  8. set nuset rnu 让行数行距尽收眼底:


    像打咏春一样使用Vim(Vim零插件提速策略)_第3张图片
    :set nu :set rnu


Part2:让光标跟上眼睛

效果 命令
光标置顶 gg
光标至底 G
光标至页顶 ctrl + h
光标至页底 ctrl + m
光标至页中 ctrl + l
光标至句首 ctrl + ^
光标至句尾 ctrl + $
往下翻页 ctrl + d
往上翻页 ctrl + p
像打咏春一样使用Vim(Vim零插件提速策略)_第4张图片
瞬移光标


Part3:Vim 语熟于心

Vim 语法结构:[数字]+ 动词 + 介词 + 名词/符号

  • 数字表示重复命令的次数,省略则表示只执行一次。
  • 语法结构必须严格遵循:[数字] + 动词 + 介词 + 名词/符号的顺序使用,否则可能没有意义。
  • 语法是死的,语言是活的,结合具体的情况使用即可使事半功倍。

动词

效果 命令
删除(delete): d
修改(change): c
复制(yank): y
选取(visual select): v
  • 替换(replace)命令是 r 不支持 Vim 语法结构,修改错别责的时候常用,格式是 r + 正确的字母/字符

介词

效果 命令
在...之内(inner) i
在...周围(around) a
到...位置前(to) t
到...位置上(forward) f
  • 注意:i/a/f在当动词使用的时候分别表示 插入(insert),增补(append),查询(find),然而 t 只有作介词(表示 to) 和符号(表示 tag) 的时候才有意义,请不要混淆了。

名词

效果 命令
一个单词(word) w
一个句子(sentence) s
一个段落(paragraph) p

常用符号

效果 命令
逗号 ,
句号 .
分号 ;
一个标签(tag) t
圆括号 ()
方括号 []
花括号 {}


Part4:常用 Vim 语实战(会持续更新)

1. 单词/段落

效果 命令 记忆窍门
删除一个单词 daw delete a word
替换一个单词 caw change a word
选取一个单词 vaw visual-select a word
删除一个段落 dap delete a paragraph
替换一个段落 cap change a paragraph
选取一个段落 vap visual-select a paragraph
  1. delete a word


    像打咏春一样使用Vim(Vim零插件提速策略)_第5张图片
    daw 命令效果
  2. change a word


    像打咏春一样使用Vim(Vim零插件提速策略)_第6张图片
    caw 命令效果
  3. visual-select a word


    像打咏春一样使用Vim(Vim零插件提速策略)_第7张图片
    vaw 命令效果
  4. delete a paragraph


    像打咏春一样使用Vim(Vim零插件提速策略)_第8张图片
    dap 命令效果
  5. change a paragraph


    像打咏春一样使用Vim(Vim零插件提速策略)_第9张图片
    cap 命令效果

6.visual-select a paragraph


像打咏春一样使用Vim(Vim零插件提速策略)_第10张图片
vap 命令效果

想一想:如果把命令中的 a 换成 i 会有什么不同呢?

2. 程序员常用 Vim 语

命令 效果 记忆窍门
清除括号里的内容 di(/di[/di{di)/di]/di} delete inside ()/[]/{}
清除整个括号 da(/da[/da{da)/da]/da} delete around ()/[]/{}
清除标签里面的内容 dit delete in tag
清除整个标签的内容 dat delete all tag
  1. delete inner bracket/tag


    像打咏春一样使用Vim(Vim零插件提速策略)_第11张图片
    清除括号/标签里的内容
  2. delete a bracket/tag


    像打咏春一样使用Vim(Vim零插件提速策略)_第12张图片
    清除整个括号/标签

想一想:如果要替换括号/标签里面的内容或者替换整个括号/标签应该如何做呢?

提速策略

仔细观看上面的实例,你也许会发现,无论在单词/段落/标签的任意一个位置(首部,中间,结尾)以上命令均可使用。这意味着你可以放心的使用Part1 中的第六条建议:常用.(英文句号)重复执行命令。接下来,你便可以用点点点,来删删删,改改改,有没有像打咏春拳一样的快感?

3. 句子

|命令|效果|
|:-:|:-:|:-:|
|向后清除到字母/符号的内容|df字母/符号|
|向前清除到字母/符号的内容|dF字母/符号|
|向前清除到字母/符号之前的内容|dT字母/符号|
|向后清除到字母/符号之前的内容|dt字母/符号|

像打咏春一样使用Vim(Vim零插件提速策略)_第13张图片
修改句子效果图

想一想:如果把命令中的 d 替换成 v 或者 c 会有什么效果呢?

当然,在修改句子的时候就不能在任意的地方用 .(英文句号)来重复修改内容了。但是我们依然可以使用 . 来快速到达指定的位置。

希望这篇文章对于喜欢 Vim 的朋友有帮助,这篇文章只包括了 Vim 从初级到进阶的一部分技巧,大家若有任何意见或建议请多多指教。都看到这儿了,给大家发个福利《Vim 实用技巧》高清英文版PDF(中文版我没找着,不嫌弃就收了顺便练练英文吧)感谢大家听我唠叨哈哈,里面有很多实用有趣的实例。下载不了的话可以简信我。

P.S. 特别感谢:
和我一起用 Vim 玩耍的小伙伴 Seven
song4 和他的这篇一起来说Vim语
Drew Neil 的《Vim 实用技巧》

你可能感兴趣的:(像打咏春一样使用Vim(Vim零插件提速策略))