Ветеран Emacs выпустил третью заметку из серии о малоизвестных встроенных фичах редактора. Главная претензия: в Emacs куча полезного, но найти это почти невозможно, поэтому автор показывает трюки, которые можно освоить за пять минут. Никаких сторонних пакетов — только stock Emacs.
Один из приёмов — dictionary-tooltip-mode: наводишь на слово и видишь значение в подсказке. Или wildcards в find-file и Dired: команды вроде C-x C-f с шаблоном *foo*.txt открывают сразу несколько файлов, а Dired с маской вроде */*_region_* покажет файлы из поддиректорий — удобно, чтобы почистить временные файлы AucTeX.
Есть ffap-menu — сканирует весь буфер на пути и URL, выводит список через completing-read. Удобно, когда ссылки раскиданы по тексту, но автор предупреждает: настоящие propertized links (как в EWW) команда не видит, для них нужна своя доработка.
Для сравнения двух окон автор хвалит compare-windows — без заморочек Ediff: ставишь курсоры в двух окнах, вызываешь команду, и она останавливается на первом расхождении. Даже директории так сравнивать можно. А для Dired есть dired-compare-directories — подсветит файлы с разными именами или атрибутами.
highlight-changes-mode подсвечивает изменения в буфере до сохранения. Можно обвесить хуками, чтобы режим включался автоматически и гас после save-buffer. Ещё автор предлагает перегрузить vc-diff, vc-ediff и vc-revision-other-window: если файл не под версионным контролем, команды будут работать с резервными копиями Emacs.
Из навигации — семейство apropos, которое объединяют под C-h a: appropos-function, apropos-variable и customize-apropos, который сразу выдаёт буфер настроек по запросу. find-function-on-key прыгает из хоткея прямо в исходник функции — без лишнего шага с describe-key.
Для редактирования — copy-from-above-command (как C-y в Vim) и duplicate-dwim (копирует строку или регион ниже). Если макросы кажутся сложными, kmacro-edit-lossage позволяет превратить историю нажатий (последние ~300 клавиш) в редактируемый макрос — не нужно заранее включать запись.
subword-mode разбивает CamelCase на части, superword-mode склеивает snake_case в одно слово. visible-mode просто отключает всю невидимость в буфере — спасает, когда не разберёшься с клавишами сворачивания в outline-minor-mode. А isearch-toggle-invisible (M-s i) решает, искать ли по скрытому тексту или игнорировать его.