Come disabilitare il rientro automatico di nuove righe?


37

Di recente ho aggiornato emacs alla versione 24.4.1 e qualcosa è cambiato nel rientro di nuove righe. Quando premo entermi aspetto solo "nudo" nuovo carattere di linea nel punto in cui era presente il cursore, in particolare se mi trovo nel mezzo della linea, quella linea dovrebbe essere divisa e nessun carattere dovrebbe essere cancellato, inclusi gli spazi. Sfortunatamente non è così.

Ecco un esempio:

a b

Quando metto il cursore subito dopo ae premo enterottengo:

a
b

mentre dovrebbe essere

a
 b

Ho cercato su Google un po 'e probabilmente questo è dovuto al rientro automatico, come posso disabilitarlo? Sto parlando di testo o modalità fondamentale, se questo è importante.


7
Per i posteri, ho un commento da aggiungere a questo. Molti problemi di "recente aggiornamento" possono essere risolti leggendo le NEWS con M-x view-emacs-news(o C-h n). Puoi leggere le NEWS per qualsiasi versione precedente aggiungendo un prefisso arg. Dopo aver visto le NEWS e aver fatto una ricerca per "rientro", il primo risultato è estremamente simile alla risposta di Drew. Solo un suggerimento utile per eventuali problemi relativi agli aggiornamenti.
tata

Risposte:


49

Disabilita electric-indent-mode:

(when (fboundp 'electric-indent-mode) (electric-indent-mode -1))

Funziona con qualsiasi versione di Emacs. Questa seccatura o funzionalità nuova di zecca, a seconda del tuo punto di vista, è stata introdotta come impostazione predefinita in Emacs 24.4.

Vedi anche questo post simile su StackOverflow.

(Tuttavia, sembra che tu stia dicendo il contrario , e che vuoi RET rientrare ma non stai ottenendo quel rientro. Ciò che è cambiato è che RET("Invio") ora rientra automaticamente, e devi premere C-jper ottenere solo una nuova riga con nessun rientro. Hanno scambiato RETe C-j, in effetti. Se vuoi RETrientrare, il nuovo comportamento predefinito dovrebbe darti quello che vuoi. In ogni caso, la modalità è electric-indent-mode: accenderlo o spegnerlo, come preferisci.)


1

V'è la possibilità di inserire un carattere di fine riga con C-q C-je ci sono 3 comandi per dividere la linea: open-line C-o, split-line C-M-oe la newline RET, C-msi utilizza. Se si posiziona il cursore come indicato dopo ae si preme C-ola riga corrente verrà interrotta dopo il cursore e ogni carattere si troverà nella riga successiva. la linea divisa manterrà la posizione della colonna in modo che uno spazio aggiuntivo venga inserito prima del contenuto.

Hmm, interessante, con C-M-ola linea corrente ottiene anche uno spazio in più alla fine in modo che le bposizioni del cursore e si allineano dopo la modifica.

In modalità fondamentale C-jcambia il buffer in base alle tue aspettative sulla mia macchina ed C-jè vincolato aelectric-newline-and-maybe-indent

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.