5

私は Vim ユーザーとしてほぼ 20 年ぶりに Emacs+Evil を試しています。私は Vim 構成のほとんどを Evil に移行していますが、多くの問題を抱えていることの 1 つは、Vim で使用しているものと同じように検索と強調表示を設定することです。私が取得しようとしているのは、手動でクリアするか別の検索を行うまで、非増分検索とハイライトを保持することです。

これらの設定を構成ファイルに設定しました。

;; keep the search highlights
(setq lazy-highlight-cleanup nil)
(setq lazy-highlight-max-at-a-time nil)
(setq lazy-highlight-initial-delay 0)

キーを使用し/て Evil で検索すると増分が実行され、他の移動キーを押すとすぐにハイライトが削除されます (jキーのようなものですが、C-s(emacs 内部 i-search) を使用するとハイライトが残ります。C-s RET(非インクリメンタル検索) を使用すると、ハイライトが表示されます)残りません。

4

2 に答える 2

3

わかりました、強調表示のための実用的な解決策を見つけました:

(defun highlight-remove-all ()
  (interactive)
  (hi-lock-mode -1)
  (hi-lock-mode 1))

(defun search-highlight-persist ()
  (highlight-regexp (car-safe (if isearch-regexp
                                  regexp-search-ring
                                search-ring)) (facep 'hi-yellow)))

(defadvice isearch-exit (after isearch-hl-persist activate)
  (highlight-remove-all)
  (search-highlight-persist))

(defadvice evil-search-incrementally (after evil-search-hl-persist activate)
  (highlight-remove-all)
  (search-highlight-persist))

これにより、isearch または Evil 検索で行われたすべての検索が強調表示されます。ハイライトは、別のハイライトを発信するか電話をかけるまで残りますhighlight-remove-all。私はそれを次のようにマッピングしましleader SPCた:

(evil-leader/set-key "SPC" 'highlight-remove-all)

PS: パッケージを作成しました。既に「evil-search-highlight-persist」という名前の melpa にあり、https ://github.com/juanjux/evil-search-highlight-persist です。

于 2014-09-18T01:13:28.090 に答える