Są chwile, kiedy edytuję pliki (na przykład manifesty marionetkowe), w których chcę wyrównać zawartość bufora w locie. Na przykład wiem, że mogę używać align-regexp
lub align
wyrównywać kod w ten sposób, o ile go wybrałem:
# M-x align-regexp "=>" will line everything up nicely
file { "/etc/foo":
ensure => present,
mode => "0666",
source => "puppet:///modules/example/foo",
}
Ale tak naprawdę chcę, aby stało się to w locie - bez konieczności wybierania regionu lub całego bufora. Czy istnieje pakiet lub tryb, który to zrobi, czy jest to coś, co musiałoby być wbudowane w tryb, który mnie interesuje?
Edycja: Pytałem o Puppet i CFEngine, ponieważ w większości przypadków to właśnie koduję i zdecydowanie preferuję wyrównany tekst. Byłem jednak ciekawy (i nie wyraziłem tego dobrze), czy wyrównanie w locie jest cechą powszechną w trybach Emacsa (głównie w trybach języków programowania), czy też większość ludzi dostosowuje się podczas zapisywania lub w niektórych inny punkt.
indent-region
się align-to-equals
i określają tę funkcję jak (defun align-to-equals (begin end) (interactive "r") (align-regexp begin end "\\(\\s-*\\)=" 1 1 nil))
; i emacs-lisp-mode-hook
z puppet-mode-hook
.