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.