使用align regexp对列进行右对齐

使用align regexp对列进行右对齐,regex,emacs,alignment,Regex,Emacs,Alignment,我尝试使用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] <Luk

我尝试使用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]btcneverleeps:否
[21:26]如果它必须等待进入街区,则不会
小卢克:你能发展一点吗?
[21:26]比特币是一种货币,而不是身份验证系统
[21:26]您的用户可能会等待很长时间,等待1个Satoshi发送给谁
[21:26]BTCNeverseeps:不过你可以使用签名邮件
以下是我想要的:

  [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]btcneverleeps:否
[21:26]如果它必须等待进入街区,则不会
小卢克:你能发展一点吗?
[21:26]比特币是一种货币,而不是身份验证系统
[21:26]您的用户可能会等待很长时间,等待1个Satoshi发送给谁
[21:26]BTCNeverseeps:不过你可以使用签名邮件
下面是我使用“align-rexegp-RET>RET”得到的结果(这不是我想要的)

[21:26]btcneverleeps:否
[21:26]如果它必须等待进入街区,则不会
小卢克:你能发展一点吗?
[21:26]比特币是一种货币,而不是身份验证系统
[21:26]您的用户可能会等待很长时间,等待1个Satoshi发送给谁
[21:26]BTCNeverseeps:不过你可以使用签名邮件

我想用一个简单的
align regexp
来做什么,还是应该研究更高级的东西?(例如,我知道我肯定可以使用宏来完成,但我首先想知道是否可以使用简单的regexp来完成)。

您可以使用
将regexp
替换为
您需要在捕获组中包含括号内的文本,然后通过提供一个否定的组参数来启用对齐:

C-u M-x
align regexp
RET
\(]+>\)
RETDEL
-1
RET
n


align regexp
无疑是更神秘的Emacs命令之一。但是功能强大。

align regexp
函数没有很好的文档记录。在这种情况下,您实际想要做的是使用C-u M-x align regexp

然后,按照提示进行操作,确保输入-1以调整捕获组

使用regexp进行复杂对齐:
(]*>)

要修改的括号组(如果为负数,则对齐):
-1

间距量(如果为负,则为列):1


在整条线路上重复?(是或否):是的

我不知道emacs正则表达式例程。但是,在使用正确的对齐偏移量写入新源之前,您要查找的对齐需要对源进行完整解析。试试
]*>
,不知道什么是
RET
。@sln:“RET”只是Emacs文档中使用的一个约定,在这里的意思是“在那一点上点击返回键”:(你可以在下面的一个答案中看到一些格式很好的)啊,不能给你投票:没有足够的代表(需要15个代表)。是的,确实很好。但是使用align regexp一次完成它怎么样,它可行吗?可能不行。即使是这样,在单个函数中封装对齐regexp和替换regexp的调用也要容易得多。没有参数或确认或前缀参数。谢谢,非常好。。。可悲的是,我无法击败任何人,因为我错过了5个声誉点;(
的align regexp函数的+1没有很好的文档记录。
我很想看一些关于这个函数的文档,但我并不认为我熟悉它的内部结构。我有点知道使用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