2012-08-10 61 views
2

我想要做這樣的事情:我選擇一些文本,然後按Ctrl-B,選定的文本被**或我選擇的其他符號包圍。我在想,如果我能以某種方式標記選擇的開始和結束位置,我可以將Ctrl-B映射到以可視模式移動到這些標記並放置所需文本的某種組合鍵。如何在vim中爲自定義命令標記視覺選擇?

我該怎麼做?

回答

4

的開始和一個可視選擇的端部被自動標記分別與'<'>馬克。這些一直持續到另一個視覺選擇,所以它很可能用於在函數和映射中進行導航。

但是,正如@大衛所說,聽起來像環繞插件完全符合您的描述。

6

沒有必要定義自己的映射 - 蒂姆教皇的surround.vim是爲這種事情!該插件提供了映射,可以輕鬆刪除,更改和添加文本環境。

在你的情況,你做你的視覺模式選擇後,只需鍵入小號*,而您的代碼將被星號包圍。

環繞聲命令適用於標準動作,也適用於正常模式。如果你想改變周圍的字符(比如,從*'),你可以做Ç小號*

README涵蓋了很多值得一試的通用案例。

0

如果你經歷VIM教程中,你會發現這對視覺模式:

防爆插入'的視覺選定的文本。

設置下列命令

:vnoremap qq <Esc>`>a'<Esc>`<i'<Esc> 

之後選擇在視覺上並按下「QQ」

+0

這是有效的,但是您需要爲每個要包圍的字符重新映射。此外,這種重新映射消除了從視覺模式記錄宏的能力。 – 2012-08-10 09:12:51