vim 中的多个二合字母

问题描述 投票:0回答:2

您可能知道,可以使用二合字母在 vim 中输入某些特定字符(例如,在输入模式下 Ctrl+K Rg 会生成 ®)。

有没有办法定义热键,进入允许我输入多个二合字母的模式?例如,写“sayonara”而不是“Ctrl+K sa Ctrl+K yo Ctrl+K na Ctrl+K ra”即可得到“さよなら”。

vim hotkeys digraphs
2个回答
5
投票

据我所知。不过你可以想象一下:

exec 'normal! i' . substitute('sayonara', '\(..\)', nr2char(11) . '\1', 'g')

nr2char(11) 是一个 CTRL-K 字符。

如果您想要一个映射(例如,在可视模式下,在选择上按 F1 对其进行转换;仅在单行字符选择上使用此功能):

xnoremap <f1> d:exec 'normal! a' . substitute(@", '\(..\)', nr2char(11) . '\1', 'g')<ENTER>

可能有更合适的方法来做到这一点(不删除默认寄存器的内容),但我今天太懒了。我怀疑一些 Stackers 可能想用更清晰的代码发布另一个答案,他们会得到我的支持。


0
投票

这是一个老问题,但给出的答案似乎不必要地复杂。

iab sayonara さよなら

在您的

.vimrc
中意味着每次您输入
sayonara
您都会得到
さよなら

参见

:help abbreviations
-
iab
是“插入缩写”,我广泛使用它来表示错误的拼写、二合字母替换等。

© www.soinside.com 2019 - 2024. All rights reserved.