如何使用 vim-latex 在 vi​​m 中禁用代码折叠?

Posted

技术标签:

【中文标题】如何使用 vim-latex 在 vi​​m 中禁用代码折叠?【英文标题】:How can I disable code folding in vim with vim-latex? 【发布时间】:2011-03-20 08:15:18 【问题描述】:

我已经尝试了通常的方法,并且已经阅读了 :help tex.vim (见:http://vimdoc.sourceforge.net/htmldoc/syntax.html)

我已经简要查看了 syntax/tex.vim,但是如果不重新构建 vim 而不折叠,就看不到如何禁用它。我厌倦了按“zE”。

我在 .vimrc 中尝试过的行:

set foldlevel=manual
set foldlevelstart=99
let g:tex_fold_enabled=0

【问题讨论】:

【参考方案1】:

刚刚注意到在 vim-latex-suite 中有控制折叠的变量,至少从插件的 v1.6 开始。此处记录了该功能: http://vim-latex.sourceforge.net/documentation/latex-suite.html#latex-folding

简而言之,您应该能够更改三个全局变量以摆脱所有折叠:

 :let Tex_FoldedSections=""
 :let Tex_FoldedEnvironments=""
 :let Tex_FoldedMisc=""

这应该消除所有折叠。如果您想禁用某些折叠但不是全部,那么您可以通过为每个变量设置适当的值来控制事物,如上面的文档链接中所述。希望对您有所帮助。

【讨论】:

是的,这工作得很好——感谢文档的链接。我现在必须尝试更新我的发行版包管理器中的版本;)【参考方案2】:

怎么样

autocmd Filetype tex setlocal nofoldenable

【讨论】:

效果很好,但我将使用 Herbert 的第二个答案,以获得更多详细信息和文档链接。谢谢。 我没试过,但这听起来是个好主意。仅在 .vimrc 中输入命令(就像 OP 一样)在打开 Vim 时执行一次。每当打开缓冲区时,都会执行文件类型 autocmd。我不知道 autocmd 是否会在 vim-latex 已经设置折叠之前或之后执行。如果之后,则执行“删除所有折叠”(zE)也可能会有所帮助。 这对我不起作用。 Vim-latex 仍然将 foldmethod 更改为手动,所以它必须在以后发生。【参考方案3】:

折叠功能似乎都位于latex-suite 发行版的folding.vim 文件中。该文件在 ftplugin 文件夹的 latex-suite 文件夹中的 main.vim 文件的第 825 行中被引用。那行写着:

exe 'source '.fnameescape(s:path.'/folding.vim')

注释掉那一行,据我所知,它去掉了latex-suite插件中的所有折叠。我认为它不会影响其他任何东西,但我没有检查过。

【讨论】:

嗯 - 修改我的包管理器安装的文件,或者重建 vim。两者都不是很好的选择(我正在运行 Gentoo,所以重新构建不是问题;似乎没有折叠 USE 标志!)。如果没有人提出更好的解决方案,我将使用 vim-latex 提交一个错误。 这不是一个真正的错误,因为它是设计使然,只是一个尚未包含的选项。对他们来说,将这样的选项添加到插件中相对来说是微不足道的。可能还有其他简单的方法可以禁用折叠,比如在你的 vimrc 中添加类似这样的命令:au BufRead *.tex exe "zi" 嗯,通常“尚未包含的选项”会出现在错误跟踪器中——这就是我的意思。 au BufRead 命令对我不起作用。

以上是关于如何使用 vim-latex 在 vi​​m 中禁用代码折叠?的主要内容,如果未能解决你的问题,请参考以下文章

Vim-latex 插件 的安装

在 iOS 中禁用 NSParameterAssert

vi编辑器中发现文件中每行都有一个^M字符

在Linux系统下Vi命令模式和编辑模式如何切换?

如何在 Debian 中配置 Git 以默认使用 Nano 或 Vim? [复制]

Vim 中如何去掉 ^M 字符