我在Windows 8上的_vimrc开头设置了以下内容
scriptencoding utf-8
set encoding=utf-8
文件的下方是以下映射
nnoremap § ~
nnoremap ö :
我的问题是gvim启动后映射没有效果。如果我通过打开文件重新加载文件并强制写入我的
:au! BufWritePost $MYVIMRC source $MYVIMRC
开始,映射工作。如果我在运行gvim时手动输入命令,它们也可以工作。
为我的_vimrc运行set fileencoding
报告fileencoding=utf-8
。
我使用的vim版本是https://bitbucket.org/Haroogan/vim-for-windows的7.4.094 / 2.7 / 3.3 / 2.0.0。
映射在Mac上的MacVim中无需修改即可使用。有什么想法吗?
:nmap
的输出显示为
n § * ~
n <f6> * :
使用redir
捕获:nmap
的输出并将其粘贴到新的utf-8缓冲区中,§
显示为灰色的<a7>
。复制粘贴此处后,§
再次成为§
。
我从vim.org安装了gvim74.exe
并使用了相同的_vimrc。没有什么变化。我的其他键映射通常不是ö
或§
。我已经尝试了gvim.exe
和vim.exe
,vim.org的官方版本7.4和https://bitbucket.org/Haroogan/vim-for-windows的版本7.4.094 / 2.7 / 3.3 / 2.0.0。
如果我删除了编码设置
scriptencoding utf-8
set encoding=utf-8
来自我的_vimrc,键绑定按预期工作。
答案 0 :(得分:1)
我只需将编码设置的顺序更改为
即可解决上述问题set encoding=utf-8
scriptencoding utf-8
另一个解决方案是使用对此脚本编码的调用来包装keymappings,就像这个
一样scriptencoding
nnoremap § ~
nnoremap ö :
scriptencoding utf-8
我假设这会改变文本转换为utf-8的方式,但我不是vim专家。请告诉我为什么这个有效!的xD