Vim 防止;“可修改”处于禁用状态;精神抖擞

Vim 防止;“可修改”处于禁用状态;精神抖擞,vim,Vim,如何防止VIM将modifiable设置为off 我在VIM中打开了许多文件,当我想导航到一个目录时,我使用:E。有时(当VIM将modifiable设置为off时,我无法再现)。当我返回文件时,只有运行:set modifiable才能进行更改 我想让modifiable始终处于启用状态。我该怎么做 似乎这并不能解决我的问题…问题在于有时(我无法重现何时)。Vim并不是自己设置的,它可能是一个插件或配置的其他部分出错了。下一次发生这种情况时,请找出这是从哪里设置的 :verbose setlo

如何防止VIM将modifiable设置为off

我在VIM中打开了许多文件,当我想导航到一个目录时,我使用
:E
。有时(当VIM将
modifiable
设置为off时,我无法再现)。当我返回文件时,只有运行
:set modifiable
才能进行更改

我想让modifiable始终处于启用状态。我该怎么做

似乎这并不能解决我的问题…

问题在于有时(我无法重现何时)。Vim并不是自己设置的,它可能是一个插件或配置的其他部分出错了。下一次发生这种情况时,请找出这是从哪里设置的

:verbose setlocal modifiable?
一旦知道了根本原因,你就可以做点什么了

如果一切都失败了,并且您也不能/不想(暂时,为了测试)关闭插件和配置,“大锤”方法将是这样的autocmd,它尝试始终关闭选项:

:autocmd BufWinEnter * setlocal modifiable

我发现MacVim在升级到Leopard后总是在关闭modifiable的情况下打开新文件。在我的情况下,NERDTree的更新版本为我修复了它。我在NERDTree上安装了病原体,所以从
~/.vim/bundle/NERDTree上拉一个
git就可以了。

我建议不要“自动设置它总是打开”,相反,你可以创建一个快捷方式(映射),例如
m
:set ma
。这样,您就知道要对哪个缓冲区进行强制修改。在某些情况下,它可以避免一些危险的变化。@Kent但是。。。总是运行
:设置ma
,然后运行
:w,这太烦人了(因为readonly也会打开)。。。难道没有安全的解决方案吗?我使用nerdtree也面临同样的问题。@laike,我也使用nerdtree,但我认为这不是问题所在。我的问题在之后得到了解决。因此,现在您可以使用nerdtree添加文件,而无需键入
:set ma
?我看不出你在
.vimrc
中是怎么做到的。是的。。我已经安装了一些插件。我怎么知道是哪一个产生了问题@约翰ツ
:verbose
可能已经告诉你是否幸运了。否则,二进制搜索是另一种选择:禁用一半插件,看看问题是否解决了。我认为二进制搜索在这里不是一个好的解决方案。也许它是唯一的一个,但考虑到问题是随机发生的,你需要花上几天的时间在没有一半插件的情况下工作。以防万一它会帮助其他人,我发现我可以通过将
~/.vim/bundle/nerdtree/lib/nerdtree/ui.vim中显示
setlocal nonmodifiable
的行更改为
setlocal modifiable
来关闭不可修改通知