2013-06-05 41 views
3

当我在VIM上使用setlocal encoding来更改缓冲区编码时,VIM会更改所有缓冲区的编码。这真的很烦人,因为我用不同的编码编辑文件,而且我一直在破坏它们。我试着通过创建两个缓冲区,一个是setlocal encoding=latin1,另一个是setlocal encoding=utf-8:两个缓冲区的编码总是相同的,它总是我设置的最后一个编码。当使用setlocal时,为什么VIM会更改所有缓冲区的编码?

setlocal例如,在'shiftwidth'上运行良好,该问题仅表现在编码选项上。

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

我是不是觉得这是它用来工作的方式?你有一些想法可能会导致这种情况吗?

如果这很重要,我在Windows 7上使用VIM。

回答

8

'encoding'是一个全局选项,它指示Vim如何在内部处理文本,所以你有两次错误。

  1. setlocal不适用于全球只有像'encoding'选项的作用。

    :help 'option'告诉你'option'的“范围”。

  2. 'encoding'不是您正在查找的选项,您想要:set fileencoding=utf-8

参考:

:help 'encoding' 
:help 'fileencoding' 
:help 'setlocal' 
+1

我显然没有明白这一点。另外我还读了一些VIM其他答案,很多很棒的VIM的东西。谢谢。 –

+0

不客气。 – romainl

相关问题