回答
當我想突出顯示一段文字時,我使用視覺模式。我首先在標準模式下輸入 v,然後啓用視覺模式。然後我使用箭頭鍵移動光標。這會導致我的起點和當前光標位置之間的文本被突出顯示。一旦選擇了這樣的一段文本,在命令模式下輸入一個命令(例如搜索/替換)(通過輸入:)只會影響所選區域。
另一個有用的視覺命令是 shift + v(視線)。這和上面一樣,但它一次選擇整行而不是單個字符。
當你想註釋文本塊。
在命令模式:
移 + v , CTRL + v, Ĵ或ķ, 我,#(評論 字符)和然後 EscVim插入的註釋字符 塊的開始..
是,當我使用Gvim,我覺得它更通過視覺模式複製數據 容易剪貼板。
在命令模式:
移 + v ,Ĵ或ķ, 「, + ,ÿ這裏 +是剪貼板 註冊
這對我來說是手動縮進更清晰,使用標記
是
移 + v,
移 + >爲 正在向右移動。 Shift + < for 移動到左側。 。 重複
這是有趣:-)如果你想命令適用於不容易描述爲基本運動命令文本的部分
@Cherian偉大的技術使用按鈕圖像的鍵盤輸入。這是什麼標記? – 2010-01-28 03:50:56
@AJ它的 – Cherian 2010-01-28 03:58:15
可視模式是非常有用的。您可以在視覺模式下選擇一些具有複雜運動順序的文本,然後將命令應用於該選擇。
除了其他(很好)的答案,它是一個簡單的方法來定義一個行動的範圍。例如,以限制搜索&替換特定的方法...
說你有這樣的代碼:
function foo() {
abc();
while (1) {
def();
abc();
}
}
可以放置在任何括號或括號的光標,然後按 v ,%,:, s/abc/xyz/g和您的搜索&替換將具有定義的作用域將發生。
我經常使用視覺塊模式(Ctrl鍵 + v)比任何其他視覺模式的更發現自己。
一旦你意識到這種模式,你可以很容易地刪除縮進,註釋等。根據我的經驗,這通常比找出如何形成等效的搜索和刪除語句要快。
您還可以通過選擇文本塊,然後按我,無論你想添加打字,然後按Esc鍵(註釋添加縮進(或意見作爲切裏安說):你可能需要重繪屏幕(例如通過移動光標)來查看這個效果)。
一個關於視覺模式的好處之一是,由於Vim的重點方式,您可以執行大部分你是用來命令(如搜索/與替換:■,d到刪除文字,或r來取代文字),同時也看到究竟會受到什麼影響 - 這可以讓你確定你正在做的任何事情的確切範圍。
此外,如其他人提及的,可以很容易地插入一個前綴(如註釋字符或者說,&
用於對準或\item
在膠乳)通過在視覺塊模式選擇每一行的第一個字符(ctrl + v),按我在第一個字符之前插入,輸入任何你想插入的東西,然後回到正常模式。
最後一種視覺模式是視線(移 + v),它允許你快速選擇多條線路。從那裏,你可以更改使用>或<(用一個數字來縮進由許多標籤的前綴,它)它們的縮進,使用d或ÿ刪除或複製這些線路,使用ZF到從這些線創建新的摺疊,或使用任何其他基於選擇的命令。
最後,還有很多其他很酷的東西,你可以用可視化模式做的,包括GV重新選擇你的最後的視覺[行/塊]模式選擇,顧轉換可視選擇爲大寫或gu爲小寫,等等。
關於「確切地看到什麼影響」:幾個Vim的函數(我知道:s和:g就是這樣)總是在整行上工作,即使只選擇了部分行。 – 2011-10-26 08:20:22
- 1. 什麼時候和爲什麼要使用戰略模式?
- 2. 在TypeScript中,什麼時候使用「let」,什麼時候使用「const」?
- 3. 什麼時候使用for-each和什麼時候在xslt中使用apply-templates?
- 4. 什麼時候使用__proto__和什麼時候使用原型
- 5. 什麼時候應該使用AWS,什麼時候不使用
- 6. intn_t什麼時候使用它,什麼時候不使用
- 7. 什麼時候使用Ruby和什麼時候使用PHP
- 8. 什麼時候使用ByteString,什麼時候不使用?
- 9. 什麼時候應該使用模板
- 10. 什麼時候Singleton模式很重要?
- 11. 觀察者模式 - 什麼時候到
- 12. 什麼時候MVC模式合適?
- 13. 爲什麼/我應該在什麼時候使用dojo模塊?
- 14. 什麼是單身模式?爲什麼和什麼時候應該使用它?
- 15. 什麼時候在Django中使用「AbstractBaseUser」?
- 16. 什麼時候在javascript中使用'return'
- 17. 什麼時候在swift中使用respondsToSelector?
- 18. 什麼時候在C#中使用類?
- 19. 什麼時候在gridview中使用dynamicfield?
- 20. 什麼時候在mysql中使用OPTIMIZE
- 21. 什麼時候在.NET中使用GC.Collect()?
- 22. 什麼時候在Android中使用LayoutInflater
- 23. 什麼時候在Java中使用「this」
- 24. 什麼時候在C++中使用「declare」?
- 25. 什麼時候在mongodb中使用BSON?
- 26. 什麼時候在hibernate中使用Criteria.ALIAS_TO_ENTITY_MAP?
- 27. 什麼時候應該使用async/await,什麼時候不用?
- 28. 什麼是謙虛對象模式,什麼時候有用?
- 29. 什麼時候應該在ARM模板中使用變量的時候
- 30. 什麼時候使用sIFR?
另一個(有時)方便的命令是ctrl-shift-v使用可視化塊模式,在這種模式下,您可以選擇正方形文本而不是單行。我發現它適用於日誌文件。 – 2010-01-28 04:10:13
@i,這非常酷......只是試了一下!謝謝。 – 2010-01-28 04:19:28
FWIW,進入列選擇(「方形」)選擇模式,您只需要ctrl-v(Vim很難分辨ctrl-foo和ctrl-shift-foo之間的區別)。 – overthink 2010-01-28 05:19:02