Обрезка конечных пробелов отлично работает во всех файлах, отличных от JS. У меня есть эти строки в моем .emacs:Как обрезать пробелы в js2-режиме в emacs
(add-hook 'before-save-hook 'delete-trailing-whitespace)
(add-hook 'before-save-hook 'whitespace-cleanup)
Я также использовал M-x customize-group <enter> js2-mode
установить:
Js2 Cleanup Whitespace: [Hide Value] [Toggle] on (non-nil)
[State]: SAVED and set.
Non-nil to invoke `delete-trailing-whitespace' before saves.
Но это еще не обрезать пробелы на сохранение! Что мне не хватает?
Edited добавить: в ответ на предложения Дрю,
- Запуск удаления-замыкающие пробелы вручную в файле делает работу.
- Все еще не работает без очистки пробелов, что не удивительно, потому что ...
- delete-trailing-whitespace, похоже, не вызывается при сохранении.
- Также нет базового буфера сохранения.
Я не уверен, как исследовать, как js2-режим перехватывает/препятствует срабатыванию переключателей before-save-hook.
Не прямой ответ, но вы могли бы попробовать использовать либо [WS-Trim] (ftp://ftp.lysator.liu.se/pub/emacs/ws-trim.el) или [WS -butler] (https://github.com/lewang/ws-butler). Эти библиотеки умело убирают только те строки, которые вы на самом деле редактируете, что мешает вам делать ненужные изменения в других частях файла. (Если вы используете контроль версий, я бы счел это обязательным, чтобы не совершать нерелевантные изменения.) – phils
Версия Emacs?Версия js2-mode? (из GNU ELPA? вы не указали). Я не могу реплицировать проблему на Emacs 24.3, используя «последний» js2-режим с http://elpa.gnu.org/packages/js2-mode.html – phils
Я обновил Emacs 24.2 и последний режим js2, все еще происходит. Я думаю, что это не подходящий вопрос StackOverflow из-за необходимости вернуться назад, поэтому я отведу его в список рассылки. – kristina