Emacs: alinhamento semiautomático de símbolo: pares de valor em Ruby e CoffeeScript

Gosto de manter meus pares de valores de símbolo alinhados, assim:

# CoffeeScript

root
:
key1
: 1
otherKey
: 'value'

Para fazer isso, eu selecionaria as linhas e, em seguida C-u M-x align-regexp, usaria :(s-*)como regexp, acertaria <RET>algumas vezes n. Acontece que existe uma maneira muito mais fácil. Adicione o seguinte à configuração do Emacs:

(add-hook
'align-load-hook
(lambda ()

(add-to-list

'
align-rules-list
'(symbol-value-alignment
(regexp . ":\(\s-*\)")

(group . 1)

(modes . '
(ruby-mode coffee-mode))
(repeat . nil)))))

Em seguida, selecione as linhas que deseja alinhar e simplesmente faça M-x align(ou, melhor ainda, vincule isso a uma combinação de teclas).

Os recursos de alinhamento do Emacs são realmente poderosos. Para saber mais, consulte http://emacswiki.org/emacs/AlignCommands