【问题标题】:Evil mode hook with specific major mode?带有特定主要模式的邪恶模式挂钩?
【发布时间】:2016-06-25 05:11:46
【问题描述】:

是否可以仅在 org-mode 中使用 org-toggle-latex-fragment 挂钩 evil-insert-enter-state 和其他状态?

附言

建议终于奏效了。我目前有以下几部分,使 org 模式在您处于正常模式时自动呈现内容,但在您处于其他模式时扩展内容。

(defun org-preview-all-latex-fragments ()
  "Toggle all the latex fragments."
     (org-toggle-latex-fragment '(16)))


(add-hook 'org-mode-hook (lambda ()
                           (add-hook 'evil-normal-state-entry-hook 'org-preview-all-latex-fragments nil t)
                           (add-hook 'evil-normal-state-exit-hook 'org-remove-latex-fragment-image-overlays nil t)))

【问题讨论】:

  • 我认为像 (when (eq major-mode 'org-mode) ... 这样的“全局”evil-insert-enter-state 钩子是最好的方法。

标签: emacs evil-mode


【解决方案1】:

您可以在 org-mode 挂钩中添加缓冲区本地挂钩:

(add-hook 'org-mode-hook
  (lambda ()
    (add-hook 'evil-insert-state-entry-hook 'org-toggle-latex-fragment nil t)))

add-hook 的第三个参数是缓冲区本地标志。

(add-hook HOOK FUNCTION &optional APPEND LOCAL)

上面的问题是org-toggle-latex-fragment 的工作方式不同,具体取决于光标所在的位置。如果您的意思是激活文件中的所有乳胶片段,您可能需要稍微修改我的建议:

(defun org-toggle-all-latex-fragments ()
  (org-toggle-latex-fragment '(16)))

(add-hook 'org-mode-hook
  (lambda ()
    (add-hook 'evil-insert-state-entry-hook 'org-toggle-all-latex-fragments nil t)))

【讨论】:

  • '(16) 是什么意思?
  • org-toggle-latex-fragment 的第一个参数称为通用参数。 '(16) 强制org-toggle-latex-fragment 切换当前文件中的所有乳胶预览。
  • 还应该提到:将'(16) 传递给它相当于输入C-u C-u M-x org-toggle-latex-fragment
  • 我成功了。现在很棒。再评论一条。我不确定为什么不推荐使用 org-preview-latex-fragment。如果人们想要打开或关闭图像叠加层,人们想要明确控制是否正常?
猜你喜欢
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多