我的 init.vim 中有以下行:
if !&readonly
set fileencoding=utf-8
endif
它将文件编码设置为 utf-8。它工作正常,除非我将光标放在 nerdtree 窗口中,在这种情况下,我会收到以下错误:
我猜它试图将 nerdtree 窗口设置为 utf-8。我认为我可以通过在 if 语句中检查 nerdtree 来解决这个问题(这样它就不会尝试为 nerdtree 窗口设置文件编码)。我怎么做?
我的 init.vim 中有以下行:
if !&readonly
set fileencoding=utf-8
endif
它将文件编码设置为 utf-8。它工作正常,除非我将光标放在 nerdtree 窗口中,在这种情况下,我会收到以下错误:
我猜它试图将 nerdtree 窗口设置为 utf-8。我认为我可以通过在 if 语句中检查 nerdtree 来解决这个问题(这样它就不会尝试为 nerdtree 窗口设置文件编码)。我怎么做?
我已经检查过了,nerdtree 窗口是:noreadonly & nomodifiable。你收到的消息告诉你一切。即使在其上设置选项,您也无法修改“不可修改”的窗口。尝试:
if !&readonly && &modifiable
set fileencoding=utf-8
endif
其他选项是记住某个变量中的当前状态:
if !&readonly
let prev_modifiable = &modifiable
set modifiable
set fileencoding=utf-8
let &modifiable=prev_modifiable
endif