理系学生日記

おまえはいつまで学生気分なのか

go-modeでgodef-jumpした後、jump元に戻りたい

Emacs で go-mode を使っているとき、godef-jump でカーソル直下のシンボルの定義場所にジャンプすることができます。 一方で、そういえばジャンプ元に戻りたいんだけど…っていうときに、どうやって戻れば良いんだろっていうときに悩んでしまったのですが、 xref-pop-marker-stack で戻れました。

ぼくが使っている go-mode.el は v.1.5.0 ですが、godef-jump の実装は xref-push-marker-stack で push しているので、 pop すれば戻れるというかんじ。

          (if (eval-when-compile (fboundp 'xref-push-marker-stack))
              ;; TODO: Integrate this facility with XRef.
              (xref-push-marker-stack)
            (ring-insert find-tag-marker-ring (point-marker)))

xref-push-marker-stack は (Emacs 25 では) pop-tag-mark が alias を張っているので、pop-tag-mark にキーバインドしておくようにした。

(define-key go-mode-map (kbd "M-,") 'pop-tag-mark)