为什么VIM在使用setlocal时会更改所有缓冲区的编码?

Emm*_*dec 3 vim

当我setlocal encoding在VIM上使用更改缓冲区编码时,VIM会更改所有缓冲区的编码.它真的很烦人,因为我正在编辑不同编码的文件,而且我一直在腐蚀它们.我通过创建两个缓冲区尝试了它,一个setlocal encoding=latin1在一个上,一个setlocal encoding=utf-8在另一个上:两个缓冲区上的编码总是相同的,它始终是我设置的最后一个编码.

setlocal 例如,在"shiftwidth"上运行良好,该问题仅出现在编码选项上.

我试图重新安装一个新的VIM副本,我尝试了7.2和7.1,我仍然有问题.我已经禁用了我的所有插件,我的vimrc.

我是否会失去理智,认为这是以前的工作方式?你有什么想法可能会导致这种情况吗?

我在Windows 7上使用VIM,如果这很重要的话.

rom*_*inl 8

'encoding' 是一个全局选项,它决定了Vim如何在内部处理文本,因此你错了两次.

  1. setlocal不适用于全球唯一的选项'encoding'.

    :help 'option'告诉你"范围" 'option'.

  2. 'encoding'你想要的不是你想要的选择:set fileencoding=utf-8.

参考:

:help 'encoding'
:help 'fileencoding'
:help 'setlocal'
Run Code Online (Sandbox Code Playgroud)