2009-03-24 2 views
16

Я ищу способ отключить автоматическое отступы в emacs. Я не хочу, чтобы emacs автоматически присваивал код, когда я ввожу специальные символы; или/*Emacs JavaScript auto-indentation

Спасибо за любую помощь.

+1

Какой режим вы используете? – hillu

+0

Начиная с emacs 23, 'js.el' встроен в emacs и работает хорошо. Автоматический отступ можно отключить с помощью 'js-auto-indent-flag'. – Cheeso

ответ

-2

Это выключит все отступы: M-х основной моды

8

Если вы используете старый режим, основанный на CC-режиме, C-c C-l будет переключать электричество.

Там новый режим Javascript, который поставляется с Emacs, которые могут быть интерактивно переключены с СП2 режимом M-x electric-indent-mode

+0

+1. Отлично, искал это в течение долгого времени! –

+0

Как правило, это правда, но речь идет о режиме JavaScript, который переопределяет это. – fiddur

+0

@fiddur Использовались режимы, основанные на режиме Cc, но режим Javascript, который поставляется с Emacs, основан не на нем. Теперь вы можете переключать его с M-x electric-indent-mode – ashawley

14

Стива Yegge является большим.

От http://code.google.com/p/js2-mode/

Усовершенствованный режим JavaScript для GNU Emacs.

Особенность:

  • переменных (регулируемые) отступы
  • точной подсветка синтаксис
  • синтаксис ошибки подсветки
  • строгого режим предупреждения отчетов (например, декларация дубликата вара)
  • смарт линии -объем в комментариях и строках
  • набрав помощников (например, соответствующие котировки/скобки)
  • код складных (коллапс элемент как {...})
  • поддерживает JavaScript 1,5, 1,6 и 1,7 (в том числе E4X)
  • настраиваемых цветов или использование шрифта блокировка по умолчанию
  • много вариантов настройки

В конечном счете, цель состоит в том, чтобы быть конкурентоспособной с IntelliJ и другими лучшими в своем классе редакторами JavaScript.

Примечание - этот режим предназначен для GNU Emacs, версия 21 и выше. Он не поддерживает XEmacs.

+1

Он не может конкурировать с Aptana, который является бесплатным. Он поставляется с парсерами JS, которые также хороши, как js2-моды (если не лучше b/c intellisence). Его правила вложения не регулируются, все, что вы можете сделать, это установить их на вкладки или переменное количество пробелов. Который не сохраняет js2-режим от вложения 8 пробелов вместо 4, даже если у вас он установлен таким образом. Он не обрабатывает разделенные запятыми vars или такие вещи, как этот оператор $ .each (array, function(), следующая строка будет отступать от функции – Drew

+0

Из документов: ;; В отличие от языковых режимов на основе cc-engine, линия js2-mode -инъекция не является ;; настраивается. Это удивительный объем работы по поддержке настраиваемого ;; отступ. Текущий компромисс заключается в том, что клавиша табуляции позволяет вам выбирать между ;; различные вероятные точки отступов, похожие на поведение python -mode. – Drew

+10

Drew, у вас есть ссылка на режим emacs Aptana? –

0

Установить javascript-auto-indent-flag до nil перед загрузкой javascript-mode. Вы можете добавить строку в файл .emacs или введите

M-x customize-group RET javascript RET 

и изменить значение там и сохранить. Возможно, вам понадобится перезапустить Emacs, чтобы это вступило в силу; по крайней мере, в версии javascript.el, с которой я столкнулся, при настройке расписания отображается только флаг.

+2

Или, если вы используете 'js2-mode', установите переменную' js2-auto-indent-flag' в nil. –

+0

в emacs 23, встроенный режим редактирования javascript это 'js-mode', а флаг, который определяет автоматические попытки отступов, -' js-auto-indent-flag'. – Cheeso

3

По-видимому, новый благословенный путь для достижения этой цели является:

M-x electric-indent-mode 

Эта команда переключает «электрический вдавливания», то есть автоматически отступов всякий раз, когда некоторые специальные символы хит.

Лучшее, что он работает по основным режимам, а не только для js-mode (основной режим javascript по умолчанию в последней версии Emacs).

Смежные вопросы