Cómo cambiar el ancho de la sangría en el modo javascript de emacs


120

Me gustaría usar 2 espacios para mis sangrías en lugar de 4. Puedo cambiar el comportamiento predeterminado del modo C usando:

(setq c-basic-offset 2)

¿Cómo cambio esto en modo javascript?

Respuestas:


198

js-indent-level se puede usar en el modo javascript predeterminado, que se incluye por defecto a partir de emacs 23.2.

(setq js-indent-level 2)

debe hacer lo que está buscando. Si está utilizando una versión anterior de emacs, es posible que esté en modo java. Creo que este modo responde c-basic-offset, sin embargo, puedo estar equivocado.


2
(setq default-tab-width 2) sería el configurador de ancho de pestaña correspondiente para el modo java
Fergie

Con este mecanismo, el ancho de la pestaña permanece en 8, por lo que las pestañas solo se usan si el nivel de sangría es 4 (2x4 = 8) o más. ¿Cómo se configura el ancho de la pestaña en 2 o 4 para que se usen pestañas en lugar de espacios? Probé un montón de configuraciones, por ejemplo (setq tab-width 4) pero fue en vano. Mi objetivo: usar el ancho de tabulación 4 y solo usar caracteres de tabulación (no espacios como sustituto).
jdp

jdp: Prueba (defun my-javascript-mode-hook () (setq indent-tabs-mode t tab-width 4 js-indent-level 4)) (add-hook 'javascript-mode-hook 'my-javascript-mode-hook).
phils

Use js-mode-hook, así:(defun my-js-mode-hook () (setq indent-tabs-mode t tab-width 4 js-indent-level 4)) (add-hook 'js-mode-hook 'my-js-mode-hook)
skeltoac

6
¿Está esto documentado en alguna parte? ¿Había alguna forma de encontrar esta información sin stackoverflow? Miré M-x hdesde el modo js, ​​pero no pude encontrar nada allí.
Charles Holbrow

75

¡Ojalá alguien me hubiera hablado de Custom mucho antes! Quizás esto ayude a otro simple mortal como yo;)

Invocar personalizado:

M-x customize

Luego, elija "Programación" y luego "Idiomas" y luego seleccione un idioma / modo para personalizar. Edite las opciones como mejor le parezca. Cuando termine, elija "Guardar para la sesión actual" o "Guardar para sesiones futuras".


17

Si está usando el modo js2 (que es más poderoso en mi humilde opinión), entonces el comando es:

(setq-default js2-basic-offset 2)

Fuente.


11

Es posible que también desee configurar emacs para usar espacios en lugar de pestañas

(setq-default indent-tabs-mode nil)

Esto es más un comentario que una respuesta real. Gana más reputación para poder comentar.
jcubic

2

En mi archivo javascript.el (/ usr / share / emacs / site-lisp) encontré

javascript-indent-nivel 4

Entonces, si está usando el mismo modo lisp, puede cambiarlo ejecutando

(setq javascript-indent-level 2)

2

También puedes usar

M-x customize-variable

y escriba

js-indent-level

( js-[TAB] muestra una lista de opciones). Luego cambie el Js Indent Levelcomo desee y haga clic [State:]y guarde.



2

Si desea cambiarlo por archivo, coloque esto en la parte superior de su archivo:

// -*- mode: js; js-indent-level: 2; -*-

0

Ninguna de estas soluciones funcionó para mí después de actualizar a Emacs 26 (ya había js-indent-levelestablecido en 2 pero el ancho de mi pestaña volvió a 8), pero lo que funcionó fue establecer la tab-widthvariable en 2, que parece reemplazar la antiguadefault-tab-width variable anterior.

Encontré esto M-x customizebuscando tab width.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.