您可能知道,在 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 可能想用更简洁的代码发布另一个答案,他们会得到我的支持。