當我的代碼:如何在emacs中添加智能分配和散列對齊縮進區域?
a = 1
foo = 2
,我想使它看起來像:
a = 1
foo = 2
我可以使用對齊到等於這裏定義的函數:
Emacs hotkey to align equal signs
通過選擇區域並運行功能。我可以改變函數來散列通過改變「=」在函數定義爲「=>」以及工作和有:
bar = { :a => 1,
:foo => 2 }
被轉換成:
bar = { :a => 1,
:foo => 2 }
我想要這個當我選擇整個緩衝區並運行縮進區域時,需要對所有代碼進行對齊。但我希望它能夠智能地完成 - 不是將緩衝區中的每個'='都對齊到最右邊的'=',而是將它分配給賦值塊和單個散列文字。
編輯:爲了澄清這最後一部分,說我有以下緩衝:
a = 1
foo = 2
some_other_code
def fn
bar = { :a => 1,
:foo => 2 }
end
我想要做的 'CX H'(選擇全緩衝), 'MC- \'(indent-區域),並把它看起來就像這樣:
a = 1
foo = 2
some_other_code
def fn
bar = { :a => 1,
:foo => 2 }
end
這適用於對齊函數的替換,但是如何將其添加到縮進區域並使其僅適用於哈希定義或分配組? (請參閱編輯原始問題以澄清我的意思。) – Loren 2011-03-28 02:57:25
也許用一個新的defun調用indent-region,然後調用align-regexp。但我會簡單地手動執行縮進區域,然後是所有的align-regexp。我不確定這個工作流程是否對這種自動化有足夠的吸引力。 – vpit3833 2011-03-29 01:06:59
令人驚歎!謝謝! – film42 2015-11-28 17:54:28