3

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

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

4

1 回答 1

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

于 2012-01-18T09:11:01.687 回答