当我的代码:如何在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