3

同じシンボルの異なる出現間を移動するには、優れたhighlight-symbol.elを使用します。

ハイライト記号の例

このスクリーンショットでは、foo_barが強調表示されており、呼び出しhighlight-symbol-prevてそこにジャンプできます。これは構文を認識しているため、それfoo_bar_bazが異なることを知るのに十分スマートであることに注意してください (isearch が理解できない何か)。

シンボルの最初の出現にジャンプできるようにしたいと思っています。これは、シンボルがインポートされた場所を見つけるのに最適です。これについてどうすればいいですか?

4

2 に答える 2

0
(eval-when-compile (require 'cl))
(require 'highlight-symbol)

(defmacro save-mark-ring (&rest body)
  "Save mark-ring; execute BODY; restore the old mark-ring."
  `(let ((old-mark-ring mark-ring))
    ,@body
    (setq mark-ring old-mark-ring)))

(defun highlight-symbol-jump-to-first ()
  "Jump to the first occurrence of the symbol at point."
  (interactive)
  (push-mark)
  (save-mark-ring
   (let (earliest-symbol-pos)
     (loop do
           (highlight-symbol-jump -1)
           (setq earliest-symbol-pos (point))
           while (< (point) earliest-symbol-pos)))))
于 2013-05-20T14:12:36.660 に答える