【问题标题】:How to fold/expand treeview in vim (built-in netrw)?如何在 vim 中折叠/展开树视图(内置 netrw)?
【发布时间】:2016-02-05 04:34:56
【问题描述】:

我喜欢使用 vim 内置的 netrw 插件来列出项目文件。有时,当我展开文件夹以查看其内容时,我需要将其折叠并转到下一个文件夹。比如我想在屏幕右侧折叠components文件夹,轻松转到elementcss

有可能吗?

更新

当我的光标在components 文件夹内时,我需要折叠。因为我可以直接按回车折叠它。

【问题讨论】:

    标签: vim treeview netrw


    【解决方案1】:

    我假设您使用的是 netrw 的树形列表模式:光标位于目录名称上方时,[return] 将在显示目录内容和不显示目录内容之间切换。

    自 netrw v151(2014 年 3 月)以来出现的 (shift+return) 映射也将满足您的要求(挤压父目录)。它仅限于与 gvim 一起使用,因为大多数终端不会将 shift-return 传递给 vim。

    【讨论】:

    • 我知道,但我想折叠父目录,因此是 elementcss,而不是 templates
    【解决方案2】:

    我还需要折叠一个父文件夹,所以我创建了这个函数并将其映射到 x 键。

    " map x key to collapse parent folder
    autocmd FileType netrw nmap <buffer> x :call NetrwCollapse()<CR>
    
    function! NetrwCollapse()
        redir => cnt
            silent .s/|//gn
        redir END
        let lvl = substitute(cnt, '\n', '', '')[0:0] - 1
        exec '?^\(| \)\{' . lvl . '\}\w'
        exec "normal \<CR>"
    endfunction
    

    编辑:我已将映射更改为 autocmd FileType 而不是 autocmd filetype,因为某些系统需要大写。

    Edit2:将映射更改为只调用一次&lt;CR&gt;。然后在函数末尾添加了一个普通的&lt;CR&gt;,因此从那里调用它。在较新的系统上工作得更好。

    【讨论】:

    • 这会覆盖x 的默认映射以打开html、jpeg 等文件(:help netrw-x
    猜你喜欢
    • 2012-01-19
    • 2017-11-24
    • 2010-12-15
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多