当我在VIM上使用setlocal encoding
更改缓冲区编码时,VIM会更改所有缓冲区的编码。它真的很烦人,因为我正在编辑不同编码的文件,而且我一直在腐蚀它们。我通过创建两个缓冲区尝试了它,一个setlocal encoding=latin1
,另一个setlocal encoding=utf-8
:两个缓冲区的编码总是相同的,它总是我设置的最后一个编码。
setlocal
适用于'shiftwidth',例如,问题仅出现在编码选项上。
我试图重新安装VIM的新副本,我尝试了7.2和7.1,我仍然有问题。我已经禁用了我的所有插件,我的vimrc。
我是否会失去理智,认为这是以前的工作方式?你有什么想法可能会导致这种情况吗?
如果这很重要,我在Windows 7上使用VIM。
答案 0 :(得分:8)
'encoding'
是一个全局选项,用于指示Vim如何在内部处理文本,因此您有两次错误。
setlocal
不适用于'encoding'
等全球选项。
:help 'option'
告诉您'option'
的“范围”。
'encoding'
不是您要查找的选项,您需要:set fileencoding=utf-8
。
参考:
:help 'encoding'
:help 'fileencoding'
:help 'setlocal'