Disabilitazione della modalità rientro elettrico solo per una modalità (modalità lattice)


11

Non mi piace il modo in cui la modalità di rientro elettrico funziona in modalità latex. Ovunque altro (almeno ovunque io uso), è fantastico.

Come posso disabilitare permanentemente la modalità rientro elettrico solo per la modalità lattice, ma tenerla ovunque?

Immagino sia un hack lisp di una riga nel mio file di configurazione, o qualcosa del genere, ma sono orribile a lisp, quindi non riesco a capirlo.

Risposte:


8

Il comando che ti serve è electric-indent-local-mode. È possibile utilizzare questo per spegnere elettrico-trattino-mode in qualsiasi tampone chiamando manualmente: M-x electric-indent-local-mode. Questo è un interruttore, quindi richiamandolo nello stesso buffer lo riattiva nuovamente.

Per farlo automaticamente dal tuo file init, devi impostare un hook. Innanzitutto, definire l'hook:

(defun remove-electric-indent-mode ()
  (electric-indent-local-mode -1))

Quindi aggiungilo ai ganci della modalità appropriata. Per disattivare la modalità rientro elettrico per la modalità LaTeX fornita da AUCTex, utilizzare questo:

(add-hook 'LaTeX-mode-hook 'remove-electric-indent-mode)

Per il texmode predefinito, utilizzare:

(add-hook 'tex-mode-hook 'remove-electric-indent-mode)

Lo stesso schema vale per qualsiasi altra modalità in cui si desidera disattivare il rientro elettrico.

Per maggiori dettagli sugli hook di modalità, consultare il nodo manuale Emacs incorporato [(emacs) Hooks][1]. Puoi arrivarci da Emacs tramite C-h i r m Hooks <enter>: C-hper aiuto, iper informazioni, rper leggere il manuale, mper la voce di menu e Hooksper selezionare la voce di menu. (oppure puoi seguire il link sopra per vedere la versione html).


Non è necessario definire una funzione aggiuntiva: è (add-hook 'LaTeX-mode-hook (lambda () (electric-indent-local-mode -1)))sufficiente.
Emil Jeřábek,

Vero, ma se si definisce una funzione, è possibile riutilizzarla in più hook diversi senza duplicare il codice. È anche più facile rimuovere una funzione definita rispetto a una anonima. Ciò può essere utile durante il debug
Tyler il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.