Подумываю организовать бивикли журнал "Погромистская Мысль" с викендным приложением "Инвалид", где будет случайным образом выбираться имакс моуд, указываться естимейтед тайм его настройки (весь викенд или викенд + половина рабочей недели) и интервью с создателем, где будут задаваться вопросы "отделяете вы гламур от эпатажа?" и "погромист ли вы по жизни?".
Захотел поправить простейшее: выключать whitespace-mode, когда включается mail-mode. Вместо ожидаемых 2х минут, помучился больше часа.
Было так:
(require 'whitespace)
(setq whitespace-style '(face empty trailing))
(setq whitespace-action '(cleanup auto-cleanup warn-read-only))
(global-whitespace-mode)
whitespace-mode это чудо инженерной мысли с 2мя режимами: глобальным, когда моуд (хочется сказать молд) инжектится в хуки сохранения любого файла, и локальным, якобы только для текущего буфера. В документации сказано, что режимы можно смешивать, подразумевая легкое отключение режима в нужном буфере. Разумеется это вранье и работает оно так же, как работал бы запор с элементами поноса.
У whitespace-mode есть удобная функция: автоматическое удаление trailing мусора при сохранении файла. Если whitespace-mode включен глобально, но отключается он
(whitespace-mode -1)
в, скажем, mail-mode-hook, то глобальный хук на удаления trailing мусора при открытии /tmp/mutt-blah-blah никуда не исчезает (происходит следующее: создается временный файл для текста письма, куда вставляется шаблон из набора headers и пр. и идет сохранение файла, при котором, правильно, пробуждается вайтспейсовкий хук.). Но от такой подчистки мусора больше вреда чем пользы, потому что строка '-- ', отделяющая подпись координат "ТОВ Зубожіння" с номером факса, превращается в '--', что ломает распознавание подписи в некоторых почтовых клиентах.
В итоге, стало так:
(add-hook 'prog-mode-hook (lambda ()
(my-whitespace-on)
))
(add-hook 'nxml-mode-hook
'(lambda ()
(rng-validate-mode 0)
(turn-off-auto-fill)
(my-whitespace-on)
))
(require 'whitespace)
(setq whitespace-global-modes nil)
(setq whitespace-style '(face empty trailing))
(defun my-whitespace-on ()
(interactive)
(whitespace-mode 1)
(setq-local whitespace-action '(cleanup auto-cleanup warn-read-only))
)
Т.е. для всех prog-mode derived режимов и nxml ставим буферо-локальный auto cleanup. Глобальный whitespace-mode отключается.
Только не очень ясно, зачем для пользователей имакса ввели налог, выражающийся в обязательным чтением исходников любой части божистого редактора, которую хочется настроить.
$ stat -c %s ~/.emacs
28232
:(
Все компьютеры нужно уничтожить.
#прогресс
#инновации
Comments:
Захотел поправить простейшее: выключать whitespace-mode, когда включается mail-mode. Вместо ожидаемых 2х минут, помучился больше часа.
Было так:
(require 'whitespace)
(setq whitespace-style '(face empty trailing))
(setq whitespace-action '(cleanup auto-cleanup warn-read-only))
(global-whitespace-mode)
whitespace-mode это чудо инженерной мысли с 2мя режимами: глобальным, когда моуд (хочется сказать молд) инжектится в хуки сохранения любого файла, и локальным, якобы только для текущего буфера. В документации сказано, что режимы можно смешивать, подразумевая легкое отключение режима в нужном буфере. Разумеется это вранье и работает оно так же, как работал бы запор с элементами поноса.
У whitespace-mode есть удобная функция: автоматическое удаление trailing мусора при сохранении файла. Если whitespace-mode включен глобально, но отключается он
(whitespace-mode -1)
в, скажем, mail-mode-hook, то глобальный хук на удаления trailing мусора при открытии /tmp/mutt-blah-blah никуда не исчезает (происходит следующее: создается временный файл для текста письма, куда вставляется шаблон из набора headers и пр. и идет сохранение файла, при котором, правильно, пробуждается вайтспейсовкий хук.). Но от такой подчистки мусора больше вреда чем пользы, потому что строка '-- ', отделяющая подпись координат "ТОВ Зубожіння" с номером факса, превращается в '--', что ломает распознавание подписи в некоторых почтовых клиентах.
В итоге, стало так:
(add-hook 'prog-mode-hook (lambda ()
(my-whitespace-on)
))
(add-hook 'nxml-mode-hook
'(lambda ()
(rng-validate-mode 0)
(turn-off-auto-fill)
(my-whitespace-on)
))
(require 'whitespace)
(setq whitespace-global-modes nil)
(setq whitespace-style '(face empty trailing))
(defun my-whitespace-on ()
(interactive)
(whitespace-mode 1)
(setq-local whitespace-action '(cleanup auto-cleanup warn-read-only))
)
Т.е. для всех prog-mode derived режимов и nxml ставим буферо-локальный auto cleanup. Глобальный whitespace-mode отключается.
Только не очень ясно, зачем для пользователей имакса ввели налог, выражающийся в обязательным чтением исходников любой части божистого редактора, которую хочется настроить.
$ stat -c %s ~/.emacs
28232
:(
Все компьютеры нужно уничтожить.
#прогресс
#инновации
Comments:
- Andrew Zubinski, 2013-10-26T18:13:14.335Z
от прочитанного чёта стало тревожно :(
- Henry Flower, 2013-10-26T18:22:26.005Z
+Andrew Zubinski ггг
- Henry Flower, 2013-10-26T18:28:26.969Z
+Andrew Zubinski я раз в году пытаюсь что-то там подкрутить в имаксе и каждый раз, вместо ожидаемого, что должно включатся/отключатся одним чекбоксом, начинается эпопея.
а так да, записки сумасшедшего.
больше не буду, ггг
Permalink: https://plus.google.com/115290581164606462017/posts/Wuymfq3kFuu