0

Emacs でEtagsを使用するときに問題があります。\M+ をタップするたびに。定義点にジャンプするには、次のようなクエリが常にポップアップします。

検索タグ (デフォルトの function_name):

そして、それを確認するために「Enter」をタップする必要があります。

しかし、ほとんどの場合、デフォルトのものを選択できます。では、このメッセージを抑制する方法はありますか? その理由は次のとおりです。 (defun find-tag (tagname &optional next-p regexp-p) (interactive (find-tag-interactive "Find tag: ")) ... )

なぜタグを選択する必要があるのですか? デフォルトのものを単にポイントの下の単語にできないのはなぜですか? この行を削除することはできますか? (インタラクティブ)、または良い解決策はありますか?

4

2 に答える 2

0

Emacs の awesome を介して etags ソースのいくつかの defun を簡単にC-h f調べると、検索するデフォルトのタグが という名前の関数を介して決定されることがわかりますfind-tag-default

これは、次の関数を定義するだけでよいことを意味します。

(defun find-tag-under-point ()
  (interactive)
  (find-tag (find-tag-default)))

define-key次に、またはglobal-set-keyまたはを介して、これを任意のキーにバインドできますlocal-set-key

(関数を、キーで呼び出したりバインドinteractiveしたりできる「コマンド」にしたい場合は、フォームが常に必要です。)M-x

于 2014-05-16T13:11:21.270 に答える
-1

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-9M-.呼び出しますが、デフォルトで (新しい関数) の動作はあなたが望むものです。find-tagfind-tag-under-point

于 2014-05-16T13:25:57.023 に答える