gvim -- 在映射某些Unicode字符时出现问题

3

我有一些 Vim 快捷键可以插入希腊字母和数学符号。(用于更美观的注释和 Haskell 代码。) 不幸的是,“forall”字符似乎会插入∀þX而不是只有。你是否遇到了这种情况,并且有没有解决办法?

imap <expr> <A-a> "α"
imap <expr> <A-b> "β"
imap <expr> <A-g> "γ"
imap <expr> <A-l> "λ"
imap <expr> <S-A-f> "∀"
imap <expr> <S-A-e> "∃"

你需要使用gvim才能使用“Alt”键组合;如果需要,你可以将“A”更改为“C”,并尝试在vim中使用。对我来说也是同样的错误。
(似乎我不能映射“alt+key”和“shift+alt+key”两个组合键,但如果这成为问题,我会再考虑的。)

检查 alt-F 是否不会插入已有的内容。在我的情况下,它会插入一个“ƒ”,所以只需将ƒ映射为∀即可。顺便说一句,shift+alt+f只是alt+F。还有,我很好奇:<expr>然后是一个字符串?它比imap <a-x> ∀更有优势吗? - sidyll
1个回答

5

看起来你遇到了与“0x80字节开始转义序列”有关的错误之一:在UTF-8中,\xe2\x88\x80... 你看到最后一个字节了吗?如果你想使用它,你应该更改映射。

inoremap <expr> <S-A-f> "\u2200"

还要注意nore:除非你知道为什么更喜欢*map,否则不要使用它,这可能会在vimrc变得复杂时给你带来麻烦。另一个选择是

inoremap <S-A-f> ∀

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