Бувають випадки, коли я редагую файли (наприклад, Маріонеткові маніфести), коли я хочу вирівняти вміст буфера на ходу. Наприклад, я знаю, що я можу використовувати align-regexp
або align
вирівняти такий код, якщо я вибрав:
# M-x align-regexp "=>" will line everything up nicely
file { "/etc/foo":
ensure => present,
mode => "0666",
source => "puppet:///modules/example/foo",
}
Але мені дуже хочеться, щоб це відбувалося на ходу, не вибираючи регіону чи цілого буфера. Чи є пакет або режим, який це зробить, чи це щось, що потрібно було б вбудувати в режим, який мене цікавить?
Редагувати: Я запитав про Puppet та CFEngine, оскільки саме це я кодую в більшість цих днів, і я сильно віддаю перевагу вирівняному тексту. Однак мені також було цікаво (і це не висловлювалось добре), щоб знати, чи вирівнювання під час руху є функцією, яка є загальною в режимах Emacs (переважно в режимах для мов програмування), або якщо більшість людей вирівнюють під час збереження або в деяких інший пункт.
indent-region
з align-to-equals
і визначити цю функцію , як (defun align-to-equals (begin end) (interactive "r") (align-regexp begin end "\\(\\s-*\\)=" 1 1 nil))
; і emacs-lisp-mode-hook
с puppet-mode-hook
.