我想要做這樣的事情:我選擇一些文本,然後按Ctrl-B,選定的文本被**或我選擇的其他符號包圍。我在想,如果我能以某種方式標記選擇的開始和結束位置,我可以將Ctrl-B映射到以可視模式移動到這些標記並放置所需文本的某種組合鍵。如何在vim中爲自定義命令標記視覺選擇?
我該怎麼做?
我想要做這樣的事情:我選擇一些文本,然後按Ctrl-B,選定的文本被**或我選擇的其他符號包圍。我在想,如果我能以某種方式標記選擇的開始和結束位置,我可以將Ctrl-B映射到以可視模式移動到這些標記並放置所需文本的某種組合鍵。如何在vim中爲自定義命令標記視覺選擇?
我該怎麼做?
的開始和一個可視選擇的端部被自動標記分別與'<
和'>
馬克。這些一直持續到另一個視覺選擇,所以它很可能用於在函數和映射中進行導航。
但是,正如@大衛所說,聽起來像環繞插件完全符合您的描述。
沒有必要定義自己的映射 - 蒂姆教皇的surround.vim是爲這種事情!該插件提供了映射,可以輕鬆刪除,更改和添加文本環境。
在你的情況,你做你的視覺模式選擇後,只需鍵入小號*,而您的代碼將被星號包圍。
環繞聲命令適用於標準動作,也適用於正常模式。如果你想改變周圍的字符(比如,從*
到'
),你可以做Ç小號*「。
README涵蓋了很多值得一試的通用案例。
如果你經歷VIM教程中,你會發現這對視覺模式:
防爆插入'的視覺選定的文本。
設置下列命令
:vnoremap qq <Esc>`>a'<Esc>`<i'<Esc>
之後選擇在視覺上並按下「QQ」
這是有效的,但是您需要爲每個要包圍的字符重新映射。此外,這種重新映射消除了從視覺模式記錄宏的能力。 – 2012-08-10 09:12:51