我尝试使用align-regexp对齐某些内容但无法获得所需的行为。
这是我最初的所作所为:
[21:26] <Luke-Jr> btcNeverSleeps: no
[21:26] <dmanderson> Not if it has to wait to make it into the block
[21:26] <btcNeverSleeps> Luke-Jr: can you develop a bit?
[21:26] <Luke-Jr> btcNeverSleeps: Bitcoin is a currency, not an authentication system
[21:26] <dmanderson> your user could be waiting a LONG time for 1 Satoshi to who up
[21:26] <Luke-Jr> btcNeverSleeps: you can use signed messages though
这就是我想要的:
[21:26] <Luke-Jr> btcNeverSleeps: no
[21:26] <dmanderson> Not if it has to wait to make it into the block
[21:26] <btcNeverSleeps> Luke-Jr: can you develop a bit?
[21:26] <Luke-Jr> btcNeverSleeps: Bitcoin is a currency, not an authentication system
[21:26] <dmanderson> your user could be waiting a LONG time for 1 Satoshi to who up
[21:26] <Luke-Jr> btcNeverSleeps: you can use signed messages though
以下是我使用“align-rexegp RET&gt; RET”得到的结果:(这不是我想要的)
[21:26] <Luke-Jr > btcNeverSleeps: no
[21:26] <dmanderson > Not if it has to wait to make it into the block
[21:26] <btcNeverSleeps > Luke-Jr: can you develop a bit?
[21:26] <Luke-Jr > btcNeverSleeps: Bitcoin is a currency, not an authentication system
[21:26] <dmanderson > your user could be waiting a LONG time for 1 Satoshi to who up
[21:26] <Luke-Jr > btcNeverSleeps: you can use signed messages though
可以用简单的align-regexp
完成我想做的事情,还是应该研究一些更先进的东西? (例如,我知道我绝对可以使用宏来做,但我首先想知道是否可以使用简单的正则表达式来完成。)
答案 0 :(得分:8)
align-regexp
函数没有详细记录。在这种情况下你真正想要做的是使用C-u M-x align-regexp
然后,按照提示确保输入-1来证明捕获组的合理性。
使用正则表达式进行复杂对齐:(<[^>]*>)
要修改的括号组(如果为负,则对齐):-1
间距量(或列为负值):1
重复整行? (是或否):是的
答案 1 :(得分:4)
您需要在捕获组中包含括号内的文本,然后通过提供否定组参数启用对齐:
Cu Mx align-regexp
RET \( <[^>]+>\)
RET DEL < / KBD> -1
RET RET n
align-regexp
绝对是更神秘的Emacs命令之一。但是很强大。
答案 2 :(得分:3)
您可以使用第3个文本样本转换为第2个文本样本
replace-regexp
<\([^ ]+\)\( +\)
和\2<\1
。