Emacs掌舵:如何在跳跃后自动重新定位?

时间:2016-04-23 18:22:21

标签: emacs emacs-helm

我想通过使用helm-semantic-or-imenu或helm-org-in-buffer-headings来重新定位当前行,即就像helm-swoop一样。有可能吗?

1 个答案:

答案 0 :(得分:1)

我没有使用helm,但我是为isearch执行此操作。找出哪个函数实际跳转到一行(可能是被调用的函数,例如helm-semantic-or-imenu,也许是isearch的一些内部帮助函数,然后向它添加以下建议。

(defun recenter-no-redraw (&optional arg)
  "Like `recenter', but no redrawing."
  (interactive "P")
  (let ((recenter-redisplay nil))
    (recenter arg)))

(advice-add 'isearch-search
            :after
            (lambda (&rest args)
              "Recenter"
              (when isearch-success
                (recenter-no-redraw))))

我无法记住为什么我定义了recenter的非重绘版本(我多年来一直这样做)。它也应该与普通recenter一起使用。