2009-03-24 11 views
16

Estoy buscando una manera de desactivar la sangría automática en emacs. No quiero que emacs inserte automáticamente el código cuando ingrese caracteres especiales como; o/*Emacs JavaScript auto-indentation

Gracias por cualquier ayuda.

+1

¿Qué modo está utilizando? – hillu

+0

A partir de emacs 23, 'js.el' está incorporado a emacs, y funciona bien. La sangría automática se puede desactivar a través de 'js-auto-indent-flag'. – Cheeso

Respuesta

-2

Esto desactivará toda la sangría: M-x- modo fundamental

8

Si está utilizando un modo de edad basado en CC-mode, C-c C-l conmutará la electricidad.

Hay un nuevo modo de Javascript que se incluye con Emacs que pueden ser activadas o de forma interactiva con js2-mode de M-x electric-indent-mode

+0

+1. Excelente, ¡he estado buscando esto por mucho tiempo! –

+0

En general, es cierto, pero la pregunta es sobre el modo JavaScript, que anula esto. – fiddur

+0

@fiddur Solía ​​haber modos basados ​​en el modo Cc, pero el modo Javascript que se envía con Emacs no está basado en él. Ahora puedes alternar con M-x electric-indent-mode – ashawley

14

Steve Yegge es grande.

De http://code.google.com/p/js2-mode/

un mejor modo de JavaScript para GNU Emacs.

Características:

  • variables (ajustable) muesca
  • sintaxis precisa destacando
  • sintaxis de error destacando
  • -modo estricto de informes de alerta (tales como la declaración duplicado var)
  • línea inteligente -encadenando comentarios y cadenas
  • ayudantes de escritura (p. ej., citas/paréntesis)
  • plegado de código (elemento de colapso como {...})
  • soporta JavaScript 1.5, 1.6 y 1.7 (incluyendo E4X)
  • colores personalizables, o el uso por defecto font-lock
  • muchas opciones de personalización

Finalmente apunta a ser competitivo con IntelliJ y otros editores de JavaScript de primera clase.

Nota: este modo es para GNU Emacs, versión 21 y superior. No es compatible con XEmacs.

+1

No puede competir con Aptana, que es gratis. Viene con un analizador JS que es tan bueno como js2-modos (si no es mejor b/c de intellisence). Sus reglas de indentación no son ajustables, todo lo que puede hacer es establecerlas en pestañas o en un número variable de espacios. Lo cual no impide que js2-mode sangre 8 espacios en lugar de 4, incluso si lo tiene configurado de esa manera. No maneja vars delimitados por comas o cosas como esta instrucción $ .each (matriz, función(), la siguiente línea sangrará contra la función – Drew

+0

De los documentos: ;; A diferencia de los modos de lenguaje basados ​​en motor cc, línea de js2-mode -indentation no es ;; personalizable. Es una sorprendente cantidad de trabajo para admitir la indentación personalizable ;; El compromiso actual es que la tecla de tabulación le permite recorrer entre ;; varios puntos de sangrado posibles, similares al comportamiento de python -mode. – Drew

+10

Drew, ¿tiene un enlace al modo emacs de Aptana? –

0

Establezca javascript-auto-indent-flag en nil antes de cargar el modo javascript. Usted puede añadir una línea a su archivo o escriba .emacs

M-x customize-group RET javascript RET 

y editar el valor allí y guardar. Es posible que deba reiniciar Emacs para que esto surta efecto; al menos en la versión de javascript.el que tengo, la bandera solo se consulta al configurar el mapa de teclas.

+2

O si usa 'js2-mode', establezca la variable' js2-auto-indent-flag' en cero. –

+0

en emacs 23, el modo de edición de JavaScript incorporado es 'js-mode', y el indicador que rige los intentos automáticos de sangría es' js-auto-indent-flag'. – Cheeso

3

Al parecer, la nueva bendita manera de lograr esto es:

M-x electric-indent-mode 

Este comando alterna "sangría eléctrica", es decir, sangrado automático cada vez que se ven afectados ciertos caracteres especiales.

Lo mejor es que funciona en los modos principales, no solo para js-mode (el modo principal predeterminado de javascript en la versión más reciente de Emacs).