您可能知道,可以使用二合字母在 vim 中输入某些特定字符(例如,在输入模式下 Ctrl+K Rg 会生成 ®)。
有没有办法定义热键,进入允许我输入多个二合字母的模式?例如,写“sayonara”而不是“Ctrl+K sa Ctrl+K yo Ctrl+K na Ctrl+K ra”即可得到“さよなら”。
据我所知。不过你可以想象一下:
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 可能想用更清晰的代码发布另一个答案,他们会得到我的支持。
这是一个老问题,但给出的答案似乎不必要地复杂。
iab sayonara さよなら
在您的
.vimrc
中意味着每次您输入 sayonara
您都会得到 さよなら
参见
:help abbreviations
- iab
是“插入缩写”,我广泛使用它来表示错误的拼写、二合字母替换等。