Vim 最顯著的特色未必是多模式,更可能是對操作、對操作對象的精細劃分,以及由此而自然而然產生的各類擴展。
## Vim 在「粒度」上做足了加法
總的來說,Vim 提供了一組詞彙和一條語法規則任由操作者組合。這條基本規則就是「操作」+「操作對象」。而不管是「操作」還是「操作對象」,Vim 都做了非常精細的區分。
就拿「移動」爲例。如果「移動」的是「字符」呢,左移「h」,右移「l」;如果「移動」的是「詞」呢,那就多了,移到當前詞頭「b」,當前詞尾「e」,後一詞詞頭「w」,前一詞詞尾「ge」;如果「移動」的是「句子」呢,行首「0」行尾「$」,連行首的非空白首字符都有特定操作「^」……
說說「查找」。行內查找可以用「f<char>」。大範圍搜索可以用「/<string>」。
再說說「選取」。除了可以選取分隔符標識的內容,還可以選取文本塊(如:當前字、詞、句、段落)。
可同一類操作間相互關聯不大,導致記憶負擔太重。比如:完全可以像插件「terryma/vim-expand-region」( https://github.com/terryma/vim-expand-region )所做的,反復按下同一按鍵,不斷擴展選取範圍。
## Vim 在「去重」上做足了減法
所謂的「去除重複」,就是用某種簡短的方式重複上一次的操作。Vim 提供了多個去重機制。如:重複前次修改(注意是修改,移動操作不會記錄在案)的「.」命令;重複前次行內查找的「;」和「,」;重複前次全文搜索的「n」和「N」;重複最近調用過的宏的「@@」;對數字重複遞增的「<ctrl-a>」和重複遞減的「<ctrl-x>」……
## Vim 在「擴展」上做足了乘法
比如:「%」原本用於一組「開閉括號」間跳轉,後面可以通過插件 matchit 擴展爲可在一組「匹配關鍵字(e.g. if/end)」間跳轉。正是這種概念的自然延伸讓 Vim 長成了一顆參天大樹。
## Vim 在「劃分」上做足了除法
(好吧,我編不出來了-_-!)
……
----
我們應該更關注些設計理念,而非特定的操作習慣。
Vim 設計上的加減乘除
《Vim实用技巧》热门书评
-
Vim实用技巧勘误表(包括第一版和第二版)
13有用 0无用 Easwy 2014-07-03
我是本书译者杨源,大家在阅读本书时,如果发现错误,请到我的博客上留言,我会记录下来,再版时会反馈给出版社修正。 Vim实用技巧第一版勘误表:http://easwy.com/blog/practical-vim-errata/Vim实用技巧第二版勘误表:http://easwy.com/blog/p...
-
Vim进阶读物
12有用 0无用 iMom0 2012-11-14
强迫自己关掉浏览器来看这本书。虽然使用Vim的时间不算短了,但有这样一本书来引起自己对平时不太注意的使用习惯的思考,探索更有效率的使用工具的方式。动手实践了部分例子,一个tip就像一个关卡,整个过程就像游戏中打怪通关一样有意思。...
-
温故而知新
9有用 1无用 cloudchen 2013-03-01
Vim的世界很庞大且错综复杂, 一本不介绍如何配置.vimrc的好书.技术的世界就是这样, 你需要在不同的角度, 不同的时间来温故你知道的知识点, 同时获得不同的理解和遗漏的东西.Practical Vim就是这样一本针对Vim中级用户的读物, 从实践的角度出发去获取遗漏和疏忽的Vim特性.知道为什...
-
非常值得vim学习者一看的好书
4有用 1无用 coderkian 2014-06-23
对于工作中需要vim或者对vim有极大学习兴趣的人来说,自己看手册太费时间,效率不高,平常网上查找的技巧有非常零碎,难以形成系统知识。这本书是作者的经验总结,展现了vim的系统性的操作方式,对vim学习者会有很大帮助。...
-
为什么我需要vim
2有用 0无用 ansondeng 2014-11-22
原因很简单、很粗俗,因为vim很酷,我想变得很酷。vim的学习曲线很陡峭,即使是这么酷的东西,使用起来也还是很不顺手,常常被迫使用其他编辑器来快速完成急切的任务。本书的出现终于给了我一条活路,高效率地做酷的事情。 &...
书名: Vim实用技巧
作者: [英] Drew Neil
出版社: 人民邮电出版社
原作名: Practical Vim
译者: 车文隆 | 杨源
出版年: 2014-5-1
页数: 286
定价: 59.00元
装帧: 平装
ISBN: 9787115338693