1

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

4

1 回答 1

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

于 2016-04-27T17:32:59.137 回答