【问题标题】:How to set the default to unfolded when you open a file?打开文件时如何将默认设置为展开?
【发布时间】:2012-01-09 02:38:37
【问题描述】:

在我的.vimrc 中,我将set foldmethod=syntax 用于启用方法折叠等。但是,我不喜欢每次打开文件时都折叠整个文件的默认设置。有没有办法启用foldmethod,但打开文件时会展开它们?

【问题讨论】:

  • 我发现这个article 有助于选择正确的答案。

标签: vim file-io default unfold


【解决方案1】:

您可以将其放入您的.vimrcau BufRead * normal zR

它声明一个自动命令(au),在读取缓冲区时触发(BufRead),匹配所有文件(*)并在正常模式下执行zR(打开所有折叠)命令。

【讨论】:

  • 由于某种原因,这只是部分展开了文件。我不得不改用BufWinEnter
  • 只是出于好奇与zR相反的是什么
  • nvm,关闭所有折叠是 zM
  • 更好:if has("autocmd") ... endif
【解决方案2】:
set foldlevel=99

应该打开所有折叠,无论使用何种折叠方法。 foldlevel=0 全部折叠,foldlevel=1 只有一些,...更多的数字将关闭更少的折叠。

【讨论】:

  • 但这会导致一个问题:按下zm不会关闭所有折叠,除非你输入99次
  • 你也可以set nofoldenable,它会在你打开文件时暂时禁用折叠,但只要你点击zc,所有折叠都会恢复
  • 要设置确切的折叠级别,您可以使用:autocmd BufWinEnter * let &foldlevel = max(map(range(1, line('$')), 'foldlevel(v:val)'))(取自an answer on superuser)。
  • @bitboxer "但这会导致一个问题:按zm不会关闭所有折叠" 使用zM关闭所有折叠。
  • @79E09796 您应该将您的评论移至自己的答案。
【解决方案3】:
set nofoldenable

将此添加到您的.vimrc 将在您打开文件时暂时禁用折叠,但仍可以使用zc 恢复折叠

【讨论】:

  • 有用 - 但是当你 zc 折叠时,它会同时隐藏所有其他折叠。我想我个人喜欢默认为 foldlevel=99,因为它会保留“zc”,然后在调用时本地化为您正在查看的单个块。
【解决方案4】:

.vimrc 中为BufWinEnter 添加一个自动命令以自动打开所有折叠,如下所示:

autocmd BufWinEnter * silent! :%foldopen!

这告诉 vim 在打开 BunWinEnter 事件后执行 silent :%foldopen!(参见 :h BufWinEnter)。由于%silent %foldopen! 将在整个缓冲区上执行foldopen,并由于! 而递归地打开所有折叠。 silent 将抑制任何最终的错误消息。 (如果缓冲区实际上还没有包含任何折叠,您可能会收到类似 E490: No fold found 的错误消息)

注意:您可以使用BufRead 而不是BufWinEnter,但是如果文件具有启用折叠的模式行,则会覆盖此自动命令。我的意思是BufRead autocmds 在处理模式行之前运行,BufWinEnter 将在之后运行它们。我发现后者更有用

【讨论】:

  • 为什么不使用为每个文件设置不同折叠选项的模式行?
  • 如何使用modeline来实现?
  • using autocmd here 允许使用模式行打开 所有文件 的所有折叠,它只是应用于该文件并假设您可以修改该文件(它可能是只读文件)。模式行在文件的顶部或底部看起来像 # vim: set foldlevel=99
【解决方案5】:

你可以添加

set foldlevelstart=99

到您的 .vimrc 文件,它将开始编辑所有折叠打开的任何新文件。

【讨论】:

    【解决方案6】:

    如果您想要一种方法让它在打开后立即展开,您可以使用set foldlevelstart=99,正如很多答案所解释的那样。

    但是,如果您只想看到它们展开,您只需按zi,它就会展开所有内容。另一个 zi 将关闭它们。

    【讨论】:

      【解决方案7】:

      您可以将其映射到键以启用它。 例如,

      nmap ,f :set foldmethod=syntax<CR>
      

      然后在普通模式下按“,f”组合键

      【讨论】:

        【解决方案8】:

        set nofoldenable 放入 .vimrc 文件即可打开展开的文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-10-08
          • 2021-03-31
          • 1970-01-01
          • 2016-02-18
          • 2021-11-16
          • 1970-01-01
          • 2011-07-12
          相关资源
          最近更新 更多