我已经开始在 Ubuntu 上使用 Vim 7.4,并且对它非常满意,但只有一件事让我发疯:代码折叠不起作用(至少对于 JavaScript)!
当打开 js 文件并且语法突出显示有效时,语法会自动设置为 JavaScript,所以我不明白。foldmethod
最初设置为"手动",将其设置为"语法"并没有什么区别,这让我感到困惑。我确实将let javaScript_fold=1
添加到我的 .vimrc 文件中。
有什么线索吗?我将不胜感激。谢谢!
很难说这个问题的确切原因,但如果你没有javascript.vim文件,你可能应该这样做。我建议从这个增强的javascript语法配置开始。它可能会解决您的JavaScript折叠问题等等。
如果您只想专注于折叠问题,您可以尝试在~/.vim/syntax/javascript.vim
中创建自己的 javascript.vim 文件,其中包含与我在下面给出的代码相同的代码。您可能希望根据自己的喜好调整折叠级别(0 表示完全折叠)。但是,这个简单的版本不能很好地处理包含大括号字符的注释,这是您希望使用更强大的javascript.vim的地方,例如我链接的javascript.vim。
syntax region foldBraces start=/{/ end=/}/ transparent fold keepend extend
setlocal foldmethod=syntax
setlocal foldlevel=0
我应该补充一点,我自己和其他响应者都建议你需要一个javascript.vim,事实上,一些相同的贡献者。但是,我建议的最后一次更新是在 2015 年 12 月,而不是 2009 年。
为什么您的解决方案不起作用,但可能的解决方案是使用用户创建的 vimscript,网址为 http://www.vim.org/scripts/script.php?script_id=1491
刚刚在 Vim Stack Exchange 上回答了同样的问题,答案是如果你确实使用股票syntax/javascript.vim
文件,那么你必须设置
vv
let g:javaScript_fold = 1
^^
问题中的命令与此处的区别是g:
部分(上面突出显示)。我是 Vim 脚本的新手,但我相信区别在于let javaScript_fold=1
设置了一个脚本局部变量,使其仅限于您的.vimrc
文件,而上面的示例使其成为全局的(这似乎得到了这个 Stackoverflow 线程的证实)。有关详细信息,请参阅第 41.2 节 :help usr_41.txt
和 :help internal-variables
中的变量。
这个Reddit线程也很有启发性;它与JavaScript无关,但折叠似乎对JS文件也很有用。