2010-01-28 16 views
9

我對Vim的世界比較陌生。我一直在學習我的方法,但還沒有找到進入視覺模式的實用目的。什麼時候在Vim中使用Visual模式?

什麼是視覺模式特別有用的情況?

是否存在只能在視覺模式下執行的操作?

回答

6

當我想突出顯示一段文字時,我使用視覺模式。我首先在標準模式下輸入 v,然後啓用視覺模式。然後我使用箭頭鍵移動光標。這會導致我的起點和當前光標位置之間的文本被突出顯示。一旦選擇了這樣的一段文本,在命令模式下輸入一個命令(例如搜索/替換)(通過輸入)只會影響所選區域。

另一個有用的視覺命令是 shift + v(視線)。這和上面一樣,但它一次選擇整行而不是單個字符。

+1

另一個(有時)方便的命令是ctrl-shift-v使用可視化塊模式,在這種模式下,您可以選擇正方形文本而不是單行。我發現它適用於日誌文件。 – 2010-01-28 04:10:13

+0

@i,這非常酷......只是試了一下!謝謝。 – 2010-01-28 04:19:28

+3

FWIW,進入列選擇(「方形」)選擇模式,您只需要ctrl-v(Vim很難分辨ctrl-foo和ctrl-shift-foo之間的區別)。 – overthink 2010-01-28 05:19:02

4
  1. 當你想註釋文本塊。
    在命令模式:
    + v CTRL + vĴķ(評論 字符)和然後 Esc

    Vim插入的註釋字符 塊的開始..

  2. 是,當我使用Gvim,我覺得它更通過視覺模式複製數據 容易剪貼板
    在命令模式:
    + vĴķ +ÿ

    這裏 +是剪貼板 註冊

    這對我來說是手動縮進更清晰,使用標記

  3. + v
    + >爲 正在向右移動。 Shift + < for 移動到左側。 重複

這是有趣:-)如果你想命令適用於不容易描述爲基本運動命令文本的部分

+0

@Cherian偉大的技術使用按鈕圖像的鍵盤輸入。這是什麼標記? – 2010-01-28 03:50:56

+3

@AJ它的 Cherian 2010-01-28 03:58:15

1

可視模式是非常有用的。您可以在視覺模式下選擇一些具有複雜運動順序的文本,然後將命令應用於該選擇。

2

除了其他(很好)的答案,它是一個簡單的方法來定義一個行動的範圍。例如,以限制搜索&替換特定的方法...

說你有這樣的代碼:

function foo() { 
    abc(); 
    while (1) { 
     def(); 
     abc(); 
    } 
} 

可以放置在任何括號或括號的光標,然後按 v,, s/abc/xyz/g和您的搜索&替換將具有定義的作用域將發生。

0

我經常使用視覺塊模式(Ctrl鍵 + v)比任何其他視覺模式的更發現自己。

一旦你意識到這種模式,你可以很容易地刪除縮進,註釋等。根據我的經驗,這通常比找出如何形成等效的搜索和刪除語句要快。

您還可以通過選擇文本塊,然後按,無論你想添加打字,然後按Esc鍵(註釋添加縮進(或意見作爲切裏安說):你可能需要重繪屏幕(例如通過移動光標)來查看這個效果)。

2

一個關於視覺模式的好處之一是,由於Vim的重點方式,您可以執行大部分你是用來命令(如搜索/與替換:■d到刪除文字,或r來取代文字),同時也看到究竟會受到什麼影響 - 這可以讓你確定你正在做的任何事情的確切範圍。

此外,如其他人提及的,可以很容易地插入一個前綴(如註釋字符或者說,&用於對準或\item在膠乳)通過在視覺塊模式選擇每一行的第一個字符(ctrl + v),按在第一個字符之前插入,輸入任何你想插入的東西,然後回到正常模式。

最後一種視覺模式是視線 + v),它允許你快速選擇多條線路。從那裏,你可以更改使用><(用一個數字來縮進由許多標籤的前綴,它)它們的縮進,使用dÿ刪除或複製這些線路,使用ZF到從這些線創建新的摺疊,或使用任何其他基於選擇的命令。

最後,還有很多其他很酷的東西,你可以用可視化模式做的,包括GV重新選擇你的最後的視覺[行/塊]模式選擇,轉換可視選擇爲大寫或gu爲小寫,等等。

+1

關於「確切地看到什麼影響」:幾個Vim的函數(我知道:s和:g就是這樣)總是在整行上工作,即使只選擇了部分行。 – 2011-10-26 08:20:22

相關問題