2010-09-23 10 views
16

Come posso ottenere emacs per evidenziare la frase che sto cercando e quindi tenerla evidenziata fino a quando non cerco un'altra frase? Può farlo in modo trasparente, semplicemente cercando, non dovendo eseguire successivamente un altro comando (come isearch-highlight-regexp)?Come posso ottenere emacs per mantenere le mie stringhe isearch evidenziate?

+0

Domanda interessante - mai trovato il bisogno di essa, può vedere come sarebbe utile, ma potrebbe anche vedere come sarebbe fastidioso. In attesa di vedere una risposta. – cristobalito

+0

Mi piace usarlo per vedere facilmente dove viene impostata e utilizzata una variabile. Collegarlo alla ricerca ha senso per me ed è facile spostarsi su qualcos'altro cercando la prossima variabile – MDCore

+0

Nice - può vedere come sarebbe utile – cristobalito

risposta

20

Prova questo:

(setq lazy-highlight-cleanup nil) 

Se si vuole cancellare l'evidenziazione manualmente, fare Mx lazy-highlight-cleanup

+1

Questo ha fatto il trucco. Ho anche dovuto impostare: '(setq lazy-highlight-max-at-a-time-nil)' e '(setq lazy-highlight-initial-delay 0)' per ottenere l'effetto esatto che volevo. – MDCore

+1

La risposta di Trey è quella giusta: questo è lo scopo della variabile 'lazy-highlight-cleanup'. E sì, questa è una caratteristica utile. Non uno che tutti useranno ogni giorno, ma a volte utile. FWIW, ho la stessa opzione per la ricerca ** Icicles **, per gli stessi motivi. Ma sono anche d'accordo sul fatto che, a seconda di ciò che si vuole veramente, si potrebbe voler guardare gli schemi di evidenziazione in altri modi. Vedi, ad esempio: Drew

+0

Sarebbe bello avere delle evidenziazioni on-search che si cancellano automaticamente quando il mouse fa clic nel buffer, mentre si bloccano durante lo scorrimento. I punti salienti evidenziati qui sono utili per alcuni casi, ma sarebbe fastidioso avere tutto il tempo. Lo stile meno appiccicoso è l'impostazione predefinita in Netbeans IIRC. –

0

Un'altra opzione è quella di utilizzare solo highlight-frase o evidenziare-regexp e non dipende dal sistema di ricerca che sta facendo il lavoro.

+0

Questo è esattamente quello che ho detto che non volevo. Voglio collegarmi alla ricerca perché voglio trovare la corrispondenza successiva e evidenziare tutte le partite con un solo comando. – MDCore

5

La risposta di Trey sembra funzionare. Ho pensato di includere uno utilizzando consiglio solo per ragioni di completezza:

(defadvice isearch-exit (after ysph-hl-search activate compile) 
    "after isearch, highlight the search term " 
    (highlight-regexp (car (if isearch-regexp 
          regexp-search-ring 
          search-ring)) (find-face 'hi-pink))) 
Problemi correlati