Bash 如何在Vim中折叠代码以使shell脚本正常工作

Bash 如何在Vim中折叠代码以使shell脚本正常工作,bash,shell,vim,folding,Bash,Shell,Vim,Folding,无论我做什么,我似乎都没有为shell脚本运行语法折叠 所以我有一个名为abc.sh的文件 :let g:sh_fold_enabled=7 :let g:is_bash=1 :set foldmethod=syntax 但它仍然找不到任何褶皱。这是为什么?这个问题在一次关于的讨论中得到了解决 诀窍是将这些命令放到顶部的vimrc中 set nocompatible filetype plugin indent on set foldenable set foldmethod=marke

无论我做什么,我似乎都没有为shell脚本运行语法折叠

所以我有一个名为abc.sh的文件

:let g:sh_fold_enabled=7
:let g:is_bash=1
:set foldmethod=syntax

但它仍然找不到任何褶皱。这是为什么?

这个问题在一次关于的讨论中得到了解决

诀窍是将这些命令放到顶部的vimrc

set nocompatible

filetype plugin indent on

set foldenable

set foldmethod=marker

au FileType sh let g:sh_fold_enabled=5

au FileType sh let g:is_bash=1

au FileType sh set foldmethod=syntax

syntax enable
IMO折叠级别5比7工作得更好,所以这就是我在上面代码中加入的内容

我把上面的内容放在我的插件部分之后


这个问题也在下面的帖子中讨论过,讨论的方法略有不同:。

对于
foldmethod=syntax
,折叠是由带有“fold”参数的语法项定义的。如果您的语法文件没有这样定义它们,您将不会得到折叠。什么版本的vim?什么是
:set ft?|文件类型
加载该文件后在vim中输出?
vim-Vi改进了7.4(2013年8月10日,2016年1月23日编译14:27:29)
set ft
导致
sh
。我真不敢相信没有对shell脚本的内置支持,我的意思是甚至有对python或ruby的支持,但不支持shell脚本?