每当我使用 netrw 的mt mf mc
命令(例如)或仅创建新目录、副本、文件等时d
,我的 vim 都会进入一种状态,它绝对不会(我知道)退出。
即使我尝试q!
从 netrw 目录视图中输入,我也会得到:
E37: No write since last change
E162: No write since last change for buffer
Run Code Online (Sandbox Code Playgroud)
从字面上看,我剩下要做的就是终止我的终端进程。
假设我无法更改此环境中的权限。我还有哪些选择?完全避免使用 netrw 来管理目录?
而且我总是在编辑文件后看到这种事情:
"NetrwTreeListing 1" [Not edited][readonly]
Run Code Online (Sandbox Code Playgroud)
netrw 创建和修改隐藏缓冲区。
摆脱这种情况的方法可能是
autocmd FileType netrw setlocal bufhidden=delete
Run Code Online (Sandbox Code Playgroud)
那可以放在~/.vimrc,然后q!netrw 工作后会让你出去。
这是通过 Tim Pope,https://github.com/tpope/vim-vinegar/issues/13#issuecomment-47133890但该线程中还有其他评论认为该设置可能并不总是有效。在这里工作,但这可能是运气,非常轻的 newrw 使用,并且还没有遇到一些 bufhidden on/off 边缘情况。
该 autocmd 设置可能会删除隐藏的修改后的缓冲区,这意味着某天某事,因此将其视为非专业大锤建议,不作任何明示或暗示的保证。