使用 Emacs align-regexp 格式化表格

mhd*_*mhd 5 vim emacs

Vim 有简洁的Tabular插件,可以让你快速对齐一些文本。我经常使用它来沿着某个字符(主要是=和 之类的东西=>)对齐代码块。但它在临时表上也做得很好。鉴于类似

|Name|Rank|No.|
|Stan Ridgway|Private First Class|8797|
|John Rambo|Private|889897|
|George S. Patton|General|0879797|
Run Code Online (Sandbox Code Playgroud)

很容易让它变成这样:

| Name             | Rank                | No.     |
| Stan Ridgway     | Private First Class | 8797    |
| John Rambo       | Private             | 889897  |
| George S. Patton | General             | 0879797 |
Run Code Online (Sandbox Code Playgroud)

选择它(或简单地将光标放在第一行),然后执行:Tabularize /|.

由于我目前正在尝试对 Emacs 和 Vi 进行一些异花授粉,从双方窃取,寻找匹配的插件等,我想在 Emacs 中做同样的事情。现在,对于前面提到的=/=>东西,align效果很好,甚至可以自动完成大多数事情。

对于更复杂的东西,有align-regexp. 我敢猜测这可能只是获得正确的正则表达式来提供给它的问题(可能在C-u前缀扩展版本中)。

在这个方向或其他功能/包有什么建议吗?

kev*_*kev 5

Type M-x orgtbl-mode, then C-c C-c

| Name             | Rank                |     No. |
| Stan Ridgway     | Private First Class |    8797 |
| John Rambo       | Private             |  889897 |
| George S. Patton | General             | 0879797 |
Run Code Online (Sandbox Code Playgroud)