非常感謝您的幫助。Emacs:Combine iseach-forward和recenter-top-bottom
在Emacs中,我喜歡使用iseach-forward(C-s),但是如果高亮顯示的字詞集中在屏幕中間而不是最底部,我更喜歡它。
我覺得自己這個做持續:
C-S富 C-S C-S C-S ... 哦!這就是我尋找的'foo'! C-l
有沒有辦法將搜索結果居中在屏幕中間?
乾杯
非常感謝您的幫助。Emacs:Combine iseach-forward和recenter-top-bottom
在Emacs中,我喜歡使用iseach-forward(C-s),但是如果高亮顯示的字詞集中在屏幕中間而不是最底部,我更喜歡它。
我覺得自己這個做持續:
C-S富 C-S C-S C-S ... 哦!這就是我尋找的'foo'! C-l
有沒有辦法將搜索結果居中在屏幕中間?
乾杯
你可以使用defadvice
isearch-forward
後運行recenter-top-bottom
。
最好的辦法可能是添加以下鉤:
(add-hook 'isearch-mode-end-hook 'recenter-top-bottom)
這將在每一個成功的漸進式搜索完成執行recenter-top-bottom
命令。
編輯:我調查研究了比特,並且被(活性搜索期間即,具有的C-s
或C-r
連續輸入)上重複搜索執行用於相同的字符串的功能似乎是isearch-repeat-forward
和/或isearch-repeat-backward
。因此,如果你想在每一個重複recenter還有,你需要在添加該功能的建議,以確定上述鉤,就像這樣:
(defadvice
isearch-repeat-forward
(after isearch-repeat-forward-recenter activate)
(recenter-top-bottom))
(defadvice
isearch-repeat-backward
(after isearch-repeat-backward-recenter activate)
(recenter-top-bottom))
(ad-activate 'isearch-repeat-forward)
(ad-activate 'isearch-repeat-backward)
就個人而言,我覺得產生的行爲是非常惱人的和令人迷惑,但是de gustibus non est disputandum。也許保留recenter-top-bottom
用於初始isearch-mode-end-hook
和單獨使用recenter
建議repeat
功能將不太討厭。
爲自己提供諮詢isearch-forward
相當於添加上面我最初建議的掛鉤,看起來對重複搜索沒有影響。添加鉤子更簡單,我認爲更習慣,所以它可能應該優先於建議的功能。
謝謝尼古拉斯和格雷格。
您的建議指出了我正確的方向。 這是爲了完成我問了代碼:
(defadvice
evil-search-forward
(after evil-search-forward-recenter activate)
(recenter))
(ad-activate 'evil-search-forward)
(defadvice
evil-search-next
(after evil-search-next-recenter activate)
(recenter))
(ad-activate 'evil-search-next)
(defadvice
evil-search-previous
(after evil-search-previous-recenter activate)
(recenter))
(ad-activate 'evil-search-previous)
說明:
我不想讓事情變得更加複雜補充說,我用邪惡的(在Emacs vim的模式),所以我在我的問題中省略了。
我使用defadvice向前搜索,移動到下一個搜索的項目並移動到上一個搜索的項目。
值得一提的是,我沒有使用(recenter-top-bottom)函數。這種行爲是瘋狂的,因爲它將第一個搜索到的項目集中在屏幕中間,第二個居中,第三個居中。我只是使用函數'recenter'將它居中放置在屏幕中間。
對於不作惡用戶的代碼應該是這樣的:
(defadvice
isearch-forward
(after isearch-forward-recenter activate)
(recenter))
(ad-activate 'isearch-forward)
(defadvice
isearch-repeat-forward
(after isearch-repeat-forward-recenter activate)
(recenter))
(ad-activate 'isearch-repeat-forward)
(defadvice
isearch-repeat-backward
(after isearch-repeat-backward-recenter activate)
(recenter))
(ad-activate 'isearch-repeat-backward)
乾杯(未測試!)!