vim:启用折叠但不自动将其关闭


16

我真的很喜欢Vim中的折叠功能,但是我确实不希望折叠几个非文件缓冲区(command-t插件的窗口),因为普通的折叠命令在那里不起作用。

如果我可以告诉vim不自动关闭折叠(仅在我告诉折叠时才关闭),这应该可以解决问题,但是我看不到vim帮助中有任何选项可以改变这种行为。有没有一种方法可以启用折叠功能,但是在创建缓冲区/打开文件时不会自动关闭所有折叠功能?

Answers:


21

打开缓冲区时不折叠的命令被打开

:set foldlevelstart=99

看到

:help foldlevelstart

更多。


13

你可以做:

set nofoldenable

例如在我的.vimrc中,我有:

set foldmethod=indent       " automatically fold by indent level
set nofoldenable            " ... but have folds open by default

2
来自tech.groups.yahoo.com/group/vim/message/119298:“通过不可折叠,所有折叠都是打开的,好像它们根本不存在。您无法与它们进行交互。但是,一旦尝试与之交互它们(例如通过按zc键),您将自动设置可折叠,它将应用窗口中存在的所有折叠。”
Mansoor Siddiqui

0

zR是打开所有折叠的命令。我假设您可以使用vim的自动命令(au)来在.vimrc中添加一个选项,以便在打开不希望使用自动关闭折叠功能启动的文件扩展名的缓冲区时,发出zR命令。像这样:

au BufRead *.myext zR

尚未测试,实际上正确的语法可能是对zR使用exe命令:

au BufRead *.myext exe "zR"

我假设您正在谈论打开缓冲区时手动定义的折叠或自动定义的折叠的自动折叠。如果问题中的缓冲区根本不应该折叠,那么可能是一个不同的问题,您需要针对这些缓冲区类型禁用折叠功能。


是的,但是当我缓冲区中时,zR不起作用,因此我不确定自动命令是否可以起作用。
爱马仕(Herms)2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.