【发布时间】:2015-02-25 19:29:07
【问题描述】:
我的问题很简单,但我仍然无法在任何地方找到答案: 在 Vim 中,如何在不实际选择文件的情况下关闭 Netrw 资源管理器? 我应该按什么键来关闭资源管理器并返回到当前打开的文件?
到目前为止,如果我想返回它,我必须从 Netrw 中选择当前打开的文件,如果我还没有保存它,这恰好是不可能的。
我可以添加我的 RTFM,并且知道:h netrw 命令;)
非常感谢。
【问题讨论】:
我的问题很简单,但我仍然无法在任何地方找到答案: 在 Vim 中,如何在不实际选择文件的情况下关闭 Netrw 资源管理器? 我应该按什么键来关闭资源管理器并返回到当前打开的文件?
到目前为止,如果我想返回它,我必须从 Netrw 中选择当前打开的文件,如果我还没有保存它,这恰好是不可能的。
我可以添加我的 RTFM,并且知道:h netrw 命令;)
非常感谢。
【问题讨论】:
使用<c-6>/<c-^> 返回上一个缓冲区。见:h CTRL-6。
专业提示:使用:Rex继续探索。见:h :Rex
【讨论】:
:b# 完成了返回上一个缓冲区的技巧;)非常感谢!
<c-^>(即<c-S-6>)才能使其正常工作。 (OSX Terminal.app)
使用 v153 的 netrw,可以使用 :Rex 返回 netrw 缓冲区;它也允许您在编辑目录之前返回到正在编辑的文件。 (请参阅http://www.drchip.org/astronaut/vim/index.html#NETRW 了解最新的 netrw)。
【讨论】:
:Rex 没有任何作用
默认情况下,没有插件等的 Vim 应该将 netrw 窗口视为缓冲区(不将其列为一个(:ls 或 :buffer)。 试试:
:bd
:bdelete
或
:bw
:bwipe
Vim 没有将 netrw 窗口列为缓冲区,而是像一个一样关闭它,并返回到以前的缓冲区/文件。
【讨论】:
:ls!,你会看到它出现在列表中:) ...并且bd<number> 和打开的netrw 目录缓冲区号也可以解决问题,如果你切换缓冲区并让一些netrw 缓冲区打开。
:bd<number>(不能再编辑了)
:buffers 检查哪个缓冲区,然后使用:bd<number> 将其删除(我需要使用:bw)
创建以下函数:
function! s:close_explorer_buffers()
for i in range(1, bufnr('$'))
if getbufvar(i, '&filetype') == "netrw"
silent exe 'bdelete! ' . i
endif
endfor
endfunction
添加映射:
nnoremap <C-e><C-x> :call <sid>close_explorer_buffers()<cr>
【讨论】:
QuitPre,以防止<C-Tab>-折叠的:Lexplore 在E173: ... more files to edit 的情况下将:q :q 变成:q :q :q。
我发现使用:exit 会关闭netrw 缓冲区并返回到上一个缓冲区。
【讨论】: