2

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

在此处输入图像描述

可能吗?

更新

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

4

2 回答 2

3

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

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

于 2015-11-04T19:26:39.817 回答
0

我还需要折叠一个父文件夹,所以我创建了这个函数并将其映射到 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:将映射更改为仅调用<CR>一次。然后在函数的末尾添加了一个法线<CR>,因此从那里调用它。在较新的系统上工作得更好。

于 2019-09-27T20:02:14.027 回答