【问题标题】:Bind F1 to smart contextual documentation (help buffers)将 F1 绑定到智能上下文文档(帮助缓冲区)
【发布时间】:2014-10-22 10:52:00
【问题描述】:

是否有一个命令可以绑定到 Emacs 中的 F1 给我(在 临时或持久缓冲区)下“符号”的上下文文档 点?

IIUC,结果与以下内容相同:

  • C-c C-v RET 在 ESS 缓冲区中 (= ess-display-help-on-object)

  • Ch f/Ch v RET 在 Emacs Lisp 缓冲区中(= describe-function/describe-variable

  • C-h S 在 Shell 缓冲区中 (= info-lookup-symbol) + M-x man-follow

  • ???在 AWK、C、Java 中

  • ???在 AUCTeX 缓冲区中(嗯,这可能是一个大梦想 ;-))

  • ...

不知何故,自动完成完成了这项工作(至少在 ESS 和 Emacs Lisp 缓冲区中), 因为它在“快速”中显示正确的帮助(关于函数、变量等) help" 工具提示。不过,它只在完成过程中显示,而不是之后。

我最初认为info-lookup-symbol 将是(部分)解决方案,但它 在 ESS 中不起作用,所以它非常有限......

那么我应该绑定什么到F1

【问题讨论】:

  • info-lookup-symbol 不满足您的大部分要求吗? (如果你真的需要结合你提到的所有内容的东西,那么编写一个命令来测试上下文并调用适当的函数(describ-function 或其他)。)对于 Emacs 的东西,也许另见@987654321 中的命令help-on-click/key @.
  • 您正在描述 Emacs 缺少的功能。请随时 M-x report-emacs-bug 询问该新功能。
  • 报告为错误 #18346
  • @itsjeyd -- 感谢您编辑键绑定的样式和函数名称!
  • 没问题。下次你会知道如何自己做;)

标签: emacs autocomplete elisp ess


【解决方案1】:

我前段时间在互联网的某个地方找到了这个 sn-p,它可以为 Emacs lisp 做到这一点:

(defun describe-symbol-at-point ()
  "Get help for the symbol at point."
  (interactive)
  (let ((sym (intern-soft (current-word))))
    (unless
        (cond ((null sym))
              ((not (eq t (help-function-arglist sym)))
               (describe-function sym))
              ((boundp sym)
               (describe-variable sym)))
      (message "nothing"))))

【讨论】:

  • 这很好地将函数帮助+变量帮助合并到一个单独的函数下。不过,在我的测试中,它只适用于 Emacs Lisp——不适用于 ESS (R)、Shell、AWK 或 Java。还是感谢这道开胃菜……
猜你喜欢
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
  • 2011-02-11
相关资源
最近更新 更多