如何在vim中快捷输入菱形符号

4
在我正在编辑的字典文件中,我经常需要将字符"◊"插入到<>的地方。有没有一种方式可以将"◊"映射到某个键,这样我按下"r"进行替换,然后按下我的快捷键,就可以将<>替换为"◊"
我在.vimrc中找到了一种创建imap映射的方法:
:imap <> ◊

但是切换到插入模式并不是最佳选择,是否可以全部使用替换模式,我应该在.vimrc中写什么?

3个回答

6

使用以下地图

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

您可以按下 r<> 键,这将替换当前缓冲区中所有出现的 <> 为 ◊。

如果未找到模式,则该映射(或调用它的替换)将给您一个错误 E486。如果您不希望出现这样的错误,您需要在替换命令中指定 e 标志:

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

您可以将这些映射之一放入您的.vimrc文件中。

非常感谢!那个方法很好用,只需要做一个更改——我不需要对整个文档进行大规模更改,那让我感到有些害怕——只需对该实例进行更改。所以,我从方程式中去掉了“%”。 map r<> :s/<>/◊/ge<CR>。 这仍然可以帮助我轻松地将“<>”替换为菱形符号“◊”,而无需从Vim窗口分心并在某些X应用程序(如Web浏览器)中搜索它。 - Temujin

5

您还可以使用vim的digraph功能,按下CTRL-K,然后按cD,就会得到一个菱形。或者如果CTRL-K被映射到其他功能(某些脚本倾向于重新映射它),您可以在插入模式下使用:set digraph,并使用c <BS> D


Vim就像是文本版的Photoshop,有很多功能...我之前没听说过“digraph feature”,但它确实好用! - Temujin

2

你试过使用缩写吗?可以这么做:

:abbr <> ◊

每次在插入模式下键入“<>”后跟空格(或任何非关键字字符),它都将被替换为“◊”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接