Rendi la modalità Web sempre rientrata con gli spazi


10

Sto usando la modalità web di emacs e la tabulazione nei file JS sembra agire in modo strano.

Ho una scheda impostata su rientro 2 spazi, ma quando il rientro raggiunge 8 spazi, la modalità Web li trasforma in una scheda, quindi continua a scheda 2 spazi fino a quando non raggiunge altri 8 e li converte in un'altra scheda, ecc.

Posso impedire che ciò accada e dire a emacs / web-mode solo spazi di rientro?

MODIFICARE:

Ecco un breve esempio di funzione nidificata:

(function() {
  function() {
    function() {
      function() {
    function() {
      // Indenting problem.
    }
      }
    }
  }
})()

Ovviamente si presenta bene in Emacs, ma qui puoi vedere il problema del rientro.

Qui noterò che ciò si verifica anche in modalità javascript.


1
È specifico per la modalità Web? O succede da qualche parte?
Malabarba,

Questo succede solo in modalità web, tutto il resto va bene con spazi indefinitamente.
dieuwe,

Siamo spiacenti, anche la modalità JavaScript fa la stessa cosa. Ma sono solo quei due.
dieuwe,

Quale javascript-modestai usando, quello incorporato? Inoltre, questo accade quando rientri in HTML web-mode?
dgtized

Si prega di pubblicare il contenuto del file init. Emacs utilizza una scheda per 8 spazi per impostazione predefinita, quindi ci deve essere qualcosa nel tuo file init per disattivarlo per la maggior parte delle modalità.
Gilles 'SO- smetti di essere malvagio'

Risposte:


10

In generale, se si desidera che il rientro utilizzi solo spazi, consiglierei di personalizzare:

(setq-default indent-tabs-mode nil)

Ciò impone al rientro di utilizzare spazi e nessuna scheda. Non sono sicuro se web-modeutilizza i metodi regolari per il rientro, quindi potrebbe non rispettarlo.

Puoi dare un esempio di file da dimostrare?


3
Ho aggiunto un esempio alla domanda. L'aggiunta (setq indent-tabs-mode nil)non sembra cambiare nulla in entrambi web-modee javascript-mode.
dieuwe,

3
Penso che dovresti usare setq-defaultperché indent-tabs-modeè buffer-local.
nperson325681

@progo Okay, ha funzionato. Grazie mille.
dieuwe,

1
È possibile rientrare solo con le schede? Ho provato diverse impostazioni, ma rientra solo con schede / spazi misti.
Dfr,

1
@Dfr Dovresti aggiungere il (setq-default indent-tabs-mode t)tuo.emacs
fxbois il

3

Prova questo codice nel file di configurazione di emacs per forzare il rientro in modalità Web. L'ho fatto riferimento dalla home page della modalità web.

(require 'web-mode)
(defun my-web-mode-hook ()
  "Hooks for Web mode."
  (setq web-mode-markup-indent-offset 2)
)
(add-hook 'web-mode-hook  'my-web-mode-hook)

Funzionerebbe anche questo? (add-hook 'web-mode-hook (lambda () (setq web-mode-markup-indent-offset 2)))
Andrew Lamarra,
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.