如何在Vim中启用自动折叠? set foldmethod=syntax
似乎没有做任何事情。
如何在Vim中启用自动折叠? set foldmethod=syntax
似乎没有做任何事情。
Answers:
要允许基于语法的折叠,请在您的内容中添加以下内容.vimrc
:
set foldmethod=syntax
set foldlevelstart=1
let javaScript_fold=1 " JavaScript
let perl_fold=1 " Perl
let php_folding=1 " PHP
let r_syntax_folding=1 " R
let ruby_fold=1 " Ruby
let sh_fold_enabled=1 " sh
let vimsyn_folding='af' " Vim script
let xml_syntax_folding=1 " XML
基于语法的折叠在$ VIM / syntax中的语言语法文件中定义。但是某些语言的语法文件中没有内置折叠规则。例如Python。对于这些语言,您需要从http://vim.sf.net下载可折叠的内容。否则,您将需要使用基于缩进的折叠。为了有效地做到这一点,您可能需要将以下内容添加到您的.vimrc文件中:
set foldmethod=indent
set foldnestmax=2
折叠有6种类型:
manual manually define folds
indent more indent means a higher fold level
expr specify an expression to define folds
syntax folds defined by syntax highlighting
diff folds for unchanged text
marker folds defined by markers in the text
我个人只使用语法折叠。通常,我只想折叠方法而不折叠每个缩进级别。缩进不一致以及格式错误的遗留代码在工作中常常使缩进折叠变得困难或不可能。在文档中添加标记很繁琐,并且不使用Vim的人在编辑文档时不会维护它们。手动折叠非常有用,直到有人在源代码管理中编辑您的代码并且所有折叠现在放在错误的位置为止。
:help fold-methods
以了解不同折叠方法的详细信息。:help folding
以了解用于操作折叠的键盘命令。:help folds
折叠整个主题的帮助。let ...=1
命令,仅此而已set foldmethod=syntax
。即某些语言不需要let
命令。
在这里尝试了所有解决方案,但没有一个可以与NeoVim v0.3.1一起使用,直到我发现vim-javascript插件和折叠开始起作用。