如何在vim中快捷方式设置菱形字符

时间:2010-05-05 09:44:58

标签: vim mapping

在我正在编辑的字典文件中,我经常需要在<>的位置插入字符“◊”。有没有办法将“◊”映射到某个键,以便我按“r”进行替换,然后my_shortcut有<>替换为“◊”? 我找到了一种在.vimrc中进行imap映射的方法:

:imap <> ◊

但是更改为插入模式是次优的,是否可以在替换模式下完成所有操作以及我应该在.vimrc中写什么?

3 个答案:

答案 0 :(得分:6)

使用以下地图

:map r<> :%s/<>/◊/g<CR>

您可以按r<>,这将替换&lt;&gt;的所有出现◊在当前缓冲区中。

地图(或者更确切地说是用它调用的替换)会给你一个 如果找不到模式,则出现错误E486。如果你不想要这样的错误,你会 想要为替换命令指定e标志:

:map r<> :%s/<>/◊/ge<CR>

您可以将其中一个映射放入.vimrc文件中。

答案 1 :(得分:5)

你也可以使用vim的有向图功能,按CTRL-K然后按cD你会得到一颗钻石。或者如果CTRL-K映射到其他东西(某些脚本倾向于重新映射),您可以:set digraph并在插入模式下使用c <BS> D

答案 2 :(得分:2)

您是否尝试使用缩写?你可以这样做:

:abbr <> ◊

然后每次输入&lt;&gt;在插入模式下跟空格(或任何非关键字字符),它将替换为''◊''。