vim – 为什么窗口分裂强制只读?
我正在使用vim进行编程.在一天的开始,我将打开一个文件,继续进行几个窗口分割,并将一些文件打开到缓冲区,以便它们随时可用.直到最近才刚刚奏效.
在最后一个星期左右,有些事情发生了变化;我的一个可写缓冲区正在转换为只读,我不知道为什么.这是命令的顺序: >打开fileA.h 对于步骤1-4,所有窗口都是可编辑的.当我执行步骤5时,新文件浏览窗口只读(如预期的那样),但现在保持fileA.cpp的窗口也被标记为只读. fileA.h仍然可以编辑.为什么会发生这种情况? 为了混淆我更多,如果我不做第4步没有问题(即我拆分窗口保存fileA.cpp而不是fileA.h).另外,如果我在步骤5中做“sp fileB.h”,而不是先分割到文件浏览器,那么没有问题.
看起来这可能是netrw插件中的错误.我用几个版本的netrw测试了两个版本的Vim 7.3(MacPorts vim 7.3-353和MacPorts MacVim“snapshot64”7.3-390):
> v140(包含在MacPorts vim:7.3-353) 您可以通过以下方式检查您的活动netrw版本:let g:loaded_netrwPlugin. v140到v142在复制场景时都有合理的行为: >只有netrw缓冲区(从sp.;右侧,上部窗口)是只读的. 使用v143和v144b,我能够重现你的行为: > netrw缓冲区(右侧,上部窗口)和fileA.cpp缓冲区(左侧)都变为只读. fileA.cpp窗口最初是一个netrw窗口(从vsp.).我的猜测是,v143和v144b中的某些东西因为某些原因重置旧窗口而有点过分(根本不应该触摸该窗口). sp fileB.h通过不调用netrw来避免这个问题(即问题不在于拆分窗口,而是netrw在创建目录列表缓冲区时所做的事情). 如果您的问题来自netrw(即您的行为符合我的说明,您的目录列表缓冲区具有文本Netrw目录列表和(例如)(netrw v143)在第二行 – 假设您没有禁用netrw横幅),那么您可以通过安装较旧的(?)版本的netrw(即v142)来解决这个问题. netrw被打包成“vimball档案”. vimball插件自带Vim 7.0及更高版本.您只需输入一个vimball文件即可将其安装到runtimepath的第一个目录(通常为?/ .vim). :e /path/to/netrw.vba.gz :so % :q 如果您使用pathogen隔离Vim插件(强烈推荐!),则可以将其安装到捆绑包目录中: :e /path/to/netrw.vba.gz :UseVimball ~/.vim/bundle/netrw :q (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |