Oct. 26th, 2013

henry_flower: A melancholy wolf (Default)
Подумываю организовать бивикли журнал "Погромистская Мысль" с викендным приложением "Инвалид", где будет случайным образом выбираться имакс моуд, указываться естимейтед тайм его настройки (весь викенд или викенд + половина рабочей недели) и интервью с создателем, где будут задаваться вопросы "отделяете вы гламур от эпатажа?" и "погромист ли вы по жизни?".

Захотел поправить простейшее: выключать 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:
  1. Andrew Zubinski, 2013-10-26T18:13:14.335Z

    от прочитанного чёта стало тревожно  :(

  2. Henry Flower, 2013-10-26T18:22:26.005Z

    +Andrew Zubinski ггг

  3. Henry Flower, 2013-10-26T18:28:26.969Z

    +Andrew Zubinski я раз в году пытаюсь что-то там подкрутить в имаксе и каждый раз, вместо ожидаемого, что должно включатся/отключатся одним чекбоксом, начинается эпопея.

    а так да, записки сумасшедшего.
    больше не буду, ггг


Permalink: https://plus.google.com/115290581164606462017/posts/Wuymfq3kFuu

June 2025

M T W T F S S
      1
2345678
91011 12131415
16171819202122
23242526272829
30      

Expand Cut Tags

No cut tags