gpt4 book ai didi

ruby-on-rails - VIM 上 ruby​​ 中的代码折叠区域?

转载 作者:行者123 更新时间:2023-12-04 06:28:54 28 4
gpt4 key购买 nike

我知道不是每个人都喜欢代码折叠,但作为到 Rails 的转换和到 VIM 的转换,我想要回到我在 Visual Studio.Net 中拥有的便利之一。我希望能够放置任意 #region #endregion 标签,并让 VIM 像其他任何东西一样为我折叠它们。

我打开了语法代码折叠并且正常的 def..end 折叠工作正常,我只想用 #regions 来增加它。

我做了一些谷歌搜索,并认为我可以在我的语法文件夹中的 ruby​​.vim 中执行此操作,但它不起作用,而且我不知道是否足以调试我复制的代码是否是错误的代码,或者只是“不能那样工作。”

let b:match_words = '\s*#\s*region.*$:\s*#\s*endregion'

这是我在语法/ruby.vim 中唯一的一行。事实上,即使 ruby​​ 突出显示工作正常,该文件在我开始之前并不存在。 (这也给我带来了很大的危险——我不知道 ruby​​/rails 语法在哪里,除非它在 ​​rails.vim 插件中,但我也找不到它。

有人可以借给我一个线程,以便我可以关注它并解决这个问题吗?
谢谢

更新:

我找到了一些其他的代码片段并尝试了这个版本,这几乎让我到达了那里:
syn region vimFoldRegion
\ start="#region"
\ end="#endregion"
\ skip=+"\%(\\"\|[^"]\)\{-}\%("\|$\)\|'[^']\{-}'+
\ transparent fold
\ keepend extend
\ containedin=ALLBUT,@vimNoFold

这让我可以折叠区域,但区域内的所有代码都显示为注释。我已经尝试了 Syn 上参数的不同变体,但我并没有在意它。

最佳答案

如果您设置 foldmethod=marker,Vim 可以根据标记折叠区域.默认标记为 {{{}}} ,虽然我很确定你可以将这些覆盖为 #region#endregion .问题是你会失去根据语法折叠的能力。还有另一个堆栈溢出问题涉及结合两种折叠方法 [1],但结论是不可能同时进行。

就其值(value)而言,我发现 vim 基于语法的代码折叠对于大型 Rub​​y 文件来说非常慢,因此如果遇到相同的问题,您可能会发现自己想要切换到仅标记折叠方法。

[1] Foldmethod=marker and syntax at the same time?

关于ruby-on-rails - VIM 上 ruby​​ 中的代码折叠区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7613164/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com