【问题标题】:Emacs function collapsingEmacs 函数崩溃
【发布时间】:2018-11-10 14:06:30
【问题描述】:

有没有办法在 Emacs 中折叠 Lisp 函数?我找到了这些答案:

emacs collapsing functions in class using outline-minor-mode

Is it possible to collapse a function in emacs?

但他们使用 add-hook,这给了我一个“未定义的函数”错误。我错过了什么?

【问题讨论】:

  • 什么是未定义的? hs-minor-mode 在较新的 emacs 版本中默认自动加载和安装,并且专门为此而设计。你用的是什么版本的emacs?
  • 2018-08-27 的 GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
  • C-h f hs-minor-mode
  • 帮助建议使用键盘快捷键 C-c @ C-d(例如),但在键入 C-c @ 时,我收到消息“C-c @ 未定义”。
  • 可能是windows问题?您可以将函数绑定到您想要的任何键,或者直接调用该函数进行尝试,例如M-x hs-minor-mode

标签: emacs


【解决方案1】:

你可以试试origami-mode

你可以在 Github 页面找到它的详细信息,但总之,只需安装它并调用origami-recursively-toggle-node 即可折叠和展开一个功能。

没有必要添加钩子或其他东西。您的配置可能有问题,可能某个地方缺少需求。

【讨论】:

  • M-x install-package 没有必要的包。
【解决方案2】:

我使用 hs-minor-mode,正如 Rorschach 在问题中的评论中所建议的那样。我的 emacs 安装附带了 hs-minor-mode,它运行良好。

为了确定有用的命令,我键入了 Ctrl-h v hs-minor-mode-map 并在 hs-minor-mode 处于活动状态时检查了键盘映射(我添加了 cmets 以便轻松读取实际的键序列) :

 (3 keymap ; Ctrl-C
    (64 keymap ; @ (at-sign)
        (5 . hs-toggle-hiding) ; Ctrl-E
        (4 . hs-hide-block) ; Ctrl-D
        (20 . hs-hide-all) ; SPACE
        (1 . hs-show-all) ; Ctrl-A
        (3 . hs-toggle-hiding) ; Ctrl-C
        (12 . hs-hide-level) ; Ctrl-L
        (27 keymap ; ESC
            (19 . hs-show-all) ; Ctrl-S
            (8 . hs-hide-all)) ; Ctrl-H
        (19 . hs-show-block) ; Ctrl-S
        (8 . hs-hide-block)))) ; Ctrl-H

推荐的击键很难键入。我决定将 Alt-H 分配给以下 elisp(这还不是我想要的,但我确实喜欢分配一个按键来执行多项操作):

(lambda () (interactive)
    (hs-minor-mode 1)
    (if (hs-find-block-beginning)
            (hs-toggle-hiding)
        (let ((from (point-min))
                (to (point-max)))
            (while (and
                (not (hs-overlay-at from))
                (setq from (next-overlay-change from))
                (not (= to from)))) ; locate first hs-overlay
            (if (= to from) ; hs-overlay-was-not-found
                (hs-hide-all)
                (hs-show-all))))))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多