2010-08-23 9 views
16

Questo problema sta uccidendo la mia produttività.Disabilita hl-line in Emacs quando si utilizza Emacs Starter Kit?

Emacs Starter Kit abilita automaticamente la linea hl, che evidenzia la linea corrente. Mi rende impossibile vedere l'evidenziazione sulla linea corrente.

Ho provato a impostare (global-hl-line-mode nil) e (hl-line-mode nil) a livello globale e aggiunto agli hook della modalità come ad esempio clojure-mode-hook, ma viene comunque visualizzato.

Cosa devo fare per disattivare questa funzione?

+1

Si noti che '(hl-line-mode nil)' è un interruttore, quindi non è molto robusto. '(hl-line-mode 0)' disattiva sempre la modalità (ma non impedisce a qualcos'altro di riaccenderla più tardi, ovviamente). – Gilles

risposta

9

hl-line-mode è attivata per la seguente riga nel Starter-Kit-defuns.el:

(add-hook 'coding-hook 'turn-on-hl-line-mode) 

è possibile commentare quella linea, o se si preferisce non toccare il motorino di avviamento kit file, si può mettere il seguente nel file init personali in ~/.emacs.d/{username} .el:

(remove-hook 'coding-hook 'turn-on-hl-line-mode) 
1

Provare a inserire (global-hl-line-mode nil) nella parte inferiore del proprio .emacs in modo che nessun altro comando lo sovrascriva.

1

Non penso che il tuo problema sia venuto da ESK - non abilita la modalità hl-line. Dovresti avere una linea che assomigli a (global-hl-line-mode t) da qualche parte se fosse vero. Ti suggerisco di cercare semplicemente quella linea nella tua configurazione e di rimuoverla se la trovi. Ci sono anche altre modalità di evidenziazione. ESK installa automaticamente l'evidenziazione inattiva da ELPA - forse questo è ciò che intendi. È possibile rimuoverlo eliminando è entrata da questo pezzo di codice in Starter-Kit-elpa.el:

(defvar starter-kit-packages (list 'idle-highlight 
            'ruby-mode 
            'inf-ruby 
            'css-mode 
            'yaml-mode 
            'find-file-in-project 
            'magit 
            'gist) 

Si dovrebbe anche eliminare il pacchetto scaricato dalla cartella di ELPA e riavviare Emacs.

1

Se si utilizza ESK, il posto migliore per inserire le proprie personalizzazioni non è .emacs ma .emacs.d/{nome utente} .el o .emacs.d/{nome utente}/{nome utente} .el.

18

in starter kit 2 il gancio corrispondente per eliminare è:

(remove-hook 'prog-mode-hook 'esk-turn-on-hl-line-mode) 

È necessario aggiungerlo alla propria configurazione dopo l'inizializzazione del kit di avvio.

4

So che questa è una vecchia questione, ma di recente ho avuto lo stesso problema (usando emacs 24) e ha scoperto che anche può essere risolto semplicemente personalizzando il volto "hl-line":

  1. Do "Mx customize-face" e inserisci "hl-line".
  2. Personalizza a proprio piacimento e "salva per sessioni future".

Se si disattivano tutti gli attributi, si disabilita effettivamente la funzione, almeno dal punto di vista dell'utente. Per me, la disattivazione dell'evidenziazione dei colori e l'impostazione di "Peso" su "pesante" ha trasformato l'hl-line da un fastidio a una caratteristica non invadente e moderatamente utile.

+0

ho usato questo soluto, ho cambiato hl-mode per il body della mia linea corrente e non ho cambiato il colore di sfondo o forground, rimosso ereditato, ora è acually un po 'utile/piacevole. – PPPaul

0

Hai chiesto come disattivare la modalità hl-line, ma hai detto che vuoi farlo perché la modalità hl-line oscura la normale evidenziazione della sintassi che preferisci vedere invece. Bene, e se ti dicessi che era possibile avere sia la linea evidenziata che l'evidenziazione della sintassi?Prova questo:

;; Change the :background setting to a value that is only very subtly 
;; lighter than the default bg color. 
(set-face-attribute 'hl-line nil 
        :background "#3d4753" 
        :foreground nil 
        :inherit t) 

Il risultato finale è una riga evidenziata che ha un effetto di evidenziazione molto bello sottili in background e mantiene tutti la sintassi prezioso evidenziando presente in primo piano. Se scegli attentamente il colore di sfondo, non avrai problemi con le interferenze di leggibilità dei colori fg/bg (voglio dire, se scegli un colore di linea evidenziato molto contrastato, i colori di evidenziazione della sintassi si scontreranno e saranno difficili da leggere, quindi, scegliendo un colore che è solo molto sottilmente diverso, puoi ancora vederlo senza doversi preoccupare dei colori fg che si scontrano).

Problemi correlati