我想知道你是否知道如何使用新模式进行隐藏显示工作。例如,我有一些我想用R隐藏的无关代码。对于折叠模式,它可以只是
(load "folding" 'nomessage 'noerror)
(folding-add-to-marks-list 'ess-mode "# {{{" "# }}}" nil t)
(add-hook 'ess-mode-hook 'turn-on-folding-mode)
我认为隐藏等效的内容将是
(add-to-list 'hs-special-modes-alist
'(ess-mode "# {{{" "# }}}" "#[ #]?"
hs-forward-sexp
hs-c-like-adjust-block-beginning
))
(add-hook 'ess-mode-hook '(lambda()
(hs-minor-mode 1)
(hs-hide-all)
(custom-set-variables
(hs-hide-comments-when-hiding-all 0)
)
))
但是我觉得hs-forward-sexp有一些魔力,我不知道怎么弄清楚?
我尝试调整为c-sharp编写的函数(用{{{和}}}替换区域/ endregion上的正则表达式搜索)但没有运气!我想知道解决方案对于那里的老兵是否显而易见......
非常感谢!
答案 0 :(得分:4)
您没有说明实际出错的地方。当我尝试使用您的配置时,我发现(hs-hide-all)
调用失败并且参数数量错误,因为hs-forward-sexp
有两个参数,但是被一个参数调用。
长话短说,在修改初始化后,我可以让隐藏工作正常用于文本模式(使用上面的更改):
(add-to-list 'hs-special-modes-alist
'(ess-mode "# {{{" "# }}}" "#[ #]?"
forward-sexp
hs-c-like-adjust-block-beginning))
你在第3行有hs-forward-sexp
,但你真正想要的只是常规forward-sexp
。
注意:我的测试实际上在text-mode
,但这不会影响结果。