【问题标题】:Vim - Quit/Close Netrw without selecting any fileVim - 退出/关闭 Netrw 而不选择任何文件
【发布时间】:2015-02-25 19:29:07
【问题描述】:

我的问题很简单,但我仍然无法在任何地方找到答案: 在 Vim 中,如何在不实际选择文件的情况下关闭 Netrw 资源管理器? 我应该按什么键来关闭资源管理器并返回到当前打开的文件?

到目前为止,如果我想返回它,我必须从 Netrw 中选择当前打开的文件,如果我还没有保存它,这恰好是不可能的。

我可以添加我的 RTFM,并且知道:h netrw 命令;)

非常感谢。

【问题讨论】:

    标签: vim netrw


    【解决方案1】:

    使用<c-6>/<c-^> 返回上一个缓冲区。见:h CTRL-6

    专业提示:使用:Rex继续探索。见:h :Rex

    【讨论】:

    • 非常感谢。在我的机器上,这会减小终端的字体大小。可能是一些 Gnome 3 设置或 Fedora 的设置。使用:b# 完成了返回上一个缓冲区的技巧;)非常感谢!
    • 查看帮助条目后,我必须执行<c-^>(即<c-S-6>)才能使其正常工作。 (OSX Terminal.app)
    【解决方案2】:

    使用 v153 的 netrw,可以使用 :Rex 返回 netrw 缓冲区;它允许您在编辑目录之前返回到正在编辑的文件。 (请参阅http://www.drchip.org/astronaut/vim/index.html#NETRW 了解最新的 netrw)。

    【讨论】:

    • 感谢您的贡献;但是我试过了,它对我不起作用。从 Netrw 输入 :Rex 没有任何作用
    • 你用的是什么版本的netrw? netrw v154b 可以在 drchip.org/astronaut/vim/index.html#NETRW 上找到。
    • @AlexandreBourlier 是因为您之前的缓冲区是 [NO NAME] 吗? :Rex 仅在您位于命名缓冲区时返回,据我所知。
    【解决方案3】:

    默认情况下,没有插件等的 Vim 应该将 netrw 窗口视为缓冲区(不将其列为一个(:ls 或 :buffer)。 试试:

    :bd
    :bdelete
    

    :bw
    :bwipe
    

    Vim 没有将 netrw 窗口列为缓冲区,而是像一个一样关闭它,并返回到以前的缓冲区/文件。

    【讨论】:

    • 嗯...实际上,如果我使用多个窗口,这将关闭我正在使用的当前窗口,这很糟糕...
    • @AlexandreBourlier:那么您不想关闭/退出 netrw。你想要一些东西来代替它。您可能需要升级 netrw 才能使 :Rex 正常工作。除此之外,只需 :e 不管你想要什么文件。如果您想要一个新的但空的缓冲区,请使用 :enew 。
    • 谢谢,太好了!!!此外,实际上,缓冲区存在,但被隐藏了。试试:ls!,你会看到它出现在列表中:) ...并且bd<number> 和打开的netrw 目录缓冲区号也可以解决问题,如果你切换缓冲区并让一些netrw 缓冲区打开。
    • 对不起,我之前的评论应该是:bd<number>(不能再编辑了)
    • 正如@Joel.O 所说,您可以使用:buffers 检查哪个缓冲区,然后使用:bd<number> 将其删除(我需要使用:bw
    【解决方案4】:

    创建以下函数:

    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,以防止&lt;C-Tab&gt;-折叠的:LexploreE173: ... more files to edit 的情况下将:q :q 变成:q :q :q
    【解决方案5】:

    我发现使用:exit 会关闭netrw 缓冲区并返回到上一个缓冲区。

    【讨论】:

    • 这是完全错误的。它关闭窗口/拆分,如果只有一个窗口,它退出 Vim。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2014-03-08
    • 2015-04-23
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多