Vim 設計上的加減乘除_Vim实用技巧书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Vim实用技巧 > Vim 設計上的加減乘除
Pope怯懦懦地 Vim实用技巧 的书评 发表时间:2015-08-15 15:08:30

Vim 設計上的加減乘除

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 在「劃分」上做足了除法

(好吧,我編不出來了-_-!)
……


----

我們應該更關注些設計理念,而非特定的操作習慣。

展开全文
有用 0 无用 0

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读