繁体   English   中英

使用utf-8启动后,vimrc nnoremap无效。 vimrc重新加载修复

[英]vimrc nnoremap no effect after startup with utf-8. vimrc reload fixes

我已在Windows 8的_vimrc开头设置了以下内容

scriptencoding utf-8
set encoding=utf-8

在文件的更下方是以下映射

nnoremap § ~
nnoremap ö :

我的问题是gvim启动后,映射没有任何效果。 如果我通过打开文件并强制执行写入操作来重新加载文件,

:au! BufWritePost $MYVIMRC source $MYVIMRC

加入,映射工作。 如果我在运行gvim时手动输入命令,它们也可以工作。

运行set fileencoding报告_vimrc的fileencoding=utf-8

我正在使用的vim版本为7.4.094 / 2.7 / 3.3 / 2.0.0,来自https://bitbucket.org/Haroogan/vim-for-windows

映射无需修改即可在MacVim上的MacVim上运行。 有任何想法吗?

更新1

:nmap的输出显示为

n  §           * ~
n  <f6>        * :

使用redir捕获:nmap的输出并将其粘贴到新的utf-8缓冲区中,该§显示为灰色<a7> 将副本粘贴回此处时, §再次为§

更新2

我从vim.org安装了gvim74.exe ,并使用了相同的_vimrc。 没有什么变化。 我的其他键映射不是ö§照常工作。 我已经尝试了gvim.exevim.exe ,都来自vim.org的官方版本7.4和来自https://bitbucket.org/Haroogan/vim-for-的版本7.4.094 / 2.7 / 3.3 / 2.0.0 窗户

更新3

如果我删除编码设置

scriptencoding utf-8
set encoding=utf-8

从我的_vimrc中,键绑定按预期工作。

我只需将编码设置的顺序更改为

set encoding=utf-8
scriptencoding utf-8

另一个解决方案是用对scriptencoding的调用包装键映射,例如

scriptencoding
nnoremap § ~
nnoremap ö :
scriptencoding utf-8

我假设这会改变文本转换为utf-8的方式,但是我不是vim专家。 请确切地告诉我为什么这行得通! 的xD

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM