24070


elisp のソースコードリーディングをしていると、知りたい関数・変数のうえで `<f1> f` や `<f1> v`
を実行して、それがどこのソースからきているのかを確認し、かつそのヘルプ画面からソースコードにジャンプするなどを行います。

このジャンプして、対象の関数・変数の挙動を把握したら、もともと読んでいた場所へ戻りたくなりますが、これを簡単に行う方法はありますか。

自分の知識ですと、ジャンプする前にその位置をレジスタに記録しておけば、 (e.g. `C-x r SPC c`)
その場所に戻ってくることはできるのは知っているのですが、 (via `C-x r j c`)
ジャンプするたびにいちいちこれを行うのは割と苦痛だと感じているので、質問しています。


CC BY-SA 3.0
2016-04-16T07:58:08.427
24068
2017-11-22T15:55:06.603
754
question
emacs elisp
elisp のコードリーディングをしている際に、元の場所へ戻るには？


`elisp-slime-nav` というパッケージが役に立つかと思います。

元々はSLIME(Emacs用Common Lisp開発環境)で使われていたタグジャンプ用コマンドをEmacs Lispに逆輸入したものです。

<https://github.com/purcell/elisp-slime-nav>

  * `M-.` ポイント位置のシンボル（関数・変数）の定義元にジャンプ
  * `M-,` ジャンプ前の位置に戻る
  * `C-c C-d d` (`C-c C-d C-d`) シンボルのヘルプを参照する

* * *

追記 (2017-11-23)

Emacs 25.1より`xref`という汎用のクロスリファレンスライブラリが試験的に導入されました。  
<https://ayatakesi.github.io/emacs/25.1/Xref.html>

`emacs-lisp-mode`ではこの機能をデフォルトで利用できます。  
キー操作は上記のパッケージと同じく `M-.` と `M-,` です。


CC BY-SA 3.0
2016-04-16T10:26:27.827
24070
2017-11-22T15:55:06.603
2017-11-22T15:55:06.603
2391
2391
24068
answer