2014-09-10 20 views
5

Emacs + Evil'i neredeyse bir yirmi yıl sonra bir Vim kullanıcısı olarak deniyorum. Vim konfigürasyonumun çoğunu Evil'e taşıyorum ama çok fazla sorun yaşadığım bir şey, aramayı ayarlamak ve Vim ile kullandığım gibi vurgulamak. Ne elde etmeye çalıştığım, artımlı olmayan bir aramaya sahip olmak ve el ile onları temizleyene veya başka bir arama yapana kadar devam etmelerini sağlamaktır.Emacs + Evil: artımlı olmayan arama ve kalıcı vurgulama?

yapılandırma dosyamda bu ayarları belirledik:

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

Evil ile arama / tuşunu kullanarak yapar artan şey ve ayrıca vurgular en kısa sürede başka bir hareket tuşuna olarak çıkarılır (. anahtar fakat C-s (Emacs'ta iç i-arama) olayları kalır ile j gibi olayları C-s RET (non artan arama) ile kalmazsa Tamam, vurgulama için çalışan bir çözüm bulundu

+1

tebrikler atlayış! Bir seçenek bulamadım. En azından, yerleşik olmayan artımlı aramaya '/' anahtarını kaldırabilirsiniz. İşlevin adını görmek için C-h k ''a bakın. Yani bir şey gibi (define-anahtar-normal-devlet-harita "/" 'ileriye doğru ")? – Ehvince

+1

bu dokümanı düzenlemeyi çok güzel görüyorsanız çok seyrek: http://wikemacs.org/index.php/Evil – Ehvince

+0

@Ehsaniye bahşiş için teşekkürler, yaptım. Evil'in kaynağını istediğime sahip olmanın bir yolu olup olmadığını kontrol edeceğim. Değiştirdiğim ayarlar hakkında bir makale yazıyorum ve yakında yayınlayacağım, yararlı bir şey ekleyip ekleyemediğimi görmek için o vikiyi kontrol edeceğim. – juanjux

cevap

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)) 

Bu, arama veya Kötü arama ile yapılan tüm aramaları vurgulayacaktır. Vurgu, başka bir tane yapana kadar kalır veya highlight-remove-all'u arayın.

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

PS: Birlikte leader SPC eşlediyseniz ben bir paket yapılmış, "kötü-arama-highlight-devam" ve adıyla melpa zaten var: https://github.com/juanjux/evil-search-highlight-persist

1

yapmak için '/ vim'in yaptığı (tekrar arama dek vurgulamak devam) gibi 'senin (require 'evil) önce bu koymak işi arama:

(setq evil-search-module 'evil-search) 
+1

Eğer bu şekilde ayarladıysam, bazı tuşlar düzgün çalışmıyor. e. tekrar arama (n tuşu), isearch'i çağırmaya çalışıyordu. Benim için çözüm yapmaktı: '(kötülük-seçim-arama-modülü 'kötülük-arama-modülü' kötülük-arama)' '' '' '' '' '' '' '' kötülük-mod 1 ''. – Tahtisilma