2010-05-20 59 views
8

我想在VIM(ruby comment)的選定文本塊的開頭插入散列。我在可視模式中選擇了這些行,但是如何對所有行執行相同的操作?VIM Blockwise插入

回答

13

你有兩個主要選擇:

  • 選擇塊可視模式(CTRL-V),然後用I插入同樣的事情在整個塊的左側。同樣附加A;見blockwise operators

  • 選擇正常視覺(v)或視覺線(V)模式中的線條,然後對所有線條執行相同的命令,例如s/^/# /normal I#。輸入:當你有一個視覺選擇自動使用視覺選擇作爲線範圍(記作'<,'>)。

+0

塊視覺模式不適合我,但正常。在塊視覺中,我選擇了每一行的第一個字符,並刪除了所有這些字符,而不是放入我想要的字符。 雖然第二個工作,但謝謝! – tesserakt 2010-05-20 15:21:48

+0

@tesmar:我一直都在使用它;我知道它是有效的 - 你一定犯了一些錯誤的東西。 'ctrl-v',得到你想要的選擇(第一個字符很好,像你一樣),'我#'。 – Cascabel 2010-05-20 15:48:30

+0

你是對的,它工作後,我意識到我不得不按Ctrl + V。感謝您的提示! – tesserakt 2010-05-24 13:10:29

1

您最好使用它。與集合數

COMMAND MODE看線

:10,50s/^ /#/克

逗號之前

第一個數字是起始行和第二數目之後逗號是端線。都包括在內。

+0

這並不完全如何處理視覺選擇。 – Cascabel 2010-05-20 15:05:12

+0

@Jefromi,是的,但它在執行期望的結果上更快。 – Dez 2010-05-20 15:11:10

+0

當然,如果你已經知道行號。如果最快的方式指定選擇'nVn'或'V}}}'會怎麼樣?爲什麼強迫自己查找行號?只需使用'nVn:s /.../.../'。 – Cascabel 2010-05-20 15:17:08

4

而在可視化模式做

:'<,'>s/^/# 

實際上,'<,'>將自動當你打:插入。