[英]How can I jump to a definition without being queried in Emacs?
在Emacs中使用Etags時遇到問題。 每次我點擊\\ M +。 跳轉到一個difinition點,查詢被不斷出現,如:
查找標簽(默認功能名稱):
我必須點擊“輸入”以確保它。
但在大多數情況下,我發現可以選擇默認值之一。 那么,有什么方法可以抑制此消息? 我發現原因是因為: (defun find-tag (tagname &optional next-p regexp-p) (interactive (find-tag-interactive "Find tag: ")) ... )
為什么必須選擇標簽? 為什么不能只將默認單詞作為重點呢? 我可以刪除這行嗎? ( 交互式 ),還是有一個好的解決方案?
不久,通過Emacs令人敬畏的Ch f
在etags源代碼中進行了幾次分解,可以發現要搜索的默認標簽是通過名為find-tag-default
的函數確定的。
這意味着您可以定義以下功能:
(defun find-tag-under-point ()
(interactive)
(find-tag (find-tag-default)))
然后,您可以通過define-key
或global-set-key
或local-set-key
將其綁定到所需的任何local-set-key
。
(如果您希望函數成為可以通過Mx
調用或綁定到鍵的“命令”,則始終需要interactive
形式。)
您可以在find-tag
編寫自己的功能(或類似的任何交互式功能)
(defun find-tag-under-point (&optional arg)
(interactive "P")
(cond ((eq arg 9)
(let ((current-prefix-arg nil))
(call-interactively 'find-tag)))
(arg
(call-interactively 'find-tag))
(t
(find-tag (find-tag-default)))))
(global-set-key (kbd "M-.") 'find-tag-under-point)
然后按C-9 M-熱鍵。 通常會調用find-tag
(舊功能),但是默認情況下您需要的是find-tag-under-point
(新功能)的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.