在 emacs 中对齐或美化代码

发布于 2024-11-11 18:36:56 字数 236 浏览 5 评论 0原文

我记得这在 emacs 中是可能的,但不知道如何实现。如果我有这样的东西:

'abc' => 1,  
'abcabc' =>2,  
'abcabcabc' => 3,  

如何将键、箭头和值与这样的东西对齐?

'abc'       => 1,  
'abcabc'    => 2,  
'abcabcabc' => 3,  

干杯

I remember this was possible in emacs, but don't know how. If I have something like:

'abc' => 1,  
'abcabc' =>2,  
'abcabcabc' => 3,  

How can I align the keys, arrows and values to something like this?

'abc'       => 1,  
'abcabc'    => 2,  
'abcabcabc' => 3,  

Cheers

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萌酱 2024-11-18 18:36:56
  • 选择区域。

  • 输入 Mxalign-regexp RET

  • 输入 = 并按 Enter 键。< /p>

  • Select the region.

  • Type M-x align-regexp RET

  • Type = and hit enter.

脱离于你 2024-11-18 18:36:56

您还可以使用 align 命令代替 align-regexp。不同之处在于,align 根据缓冲区的主模式自动选择要使用的正则表达式。因此,如果您尝试在 c 模式文件中对齐变量初始化和赋值块,那么它将自动执行正确的操作,而无需您考虑所需的正则表达式。可以方便。

例如,选择以下行:

int x = 3;
double y = 9.0;
unsigned int z = 6;
const char c = 'A';

并输入 Mxalign RET。结果是:

int          x = 3;
double       y = 9.0;
unsigned int z = 6;
const char   c = 'A';

不过,我应该补充一点,这并不总是有效。如果没有为当前缓冲区的主模式定义正则表达式,则对 align 的调用将不会执行任何操作。然后,您需要依靠 align-regexp。但这并不是什么大的不便。实际上,我相当频繁地使用 align-regexp。为了方便起见,我定义了一个别名来节省一些击键次数:

(defalias 'ar #'align-regexp)

You can also use the align command instead of align-regexp. The difference is that align automatically chooses the regular expression(s) to use based on the major-mode of the buffer. So if you are trying to align a block of variable initializations and assignments in a c-mode file, then it will automatically do the right thing without you needing to think of the regular expressions which are needed. Can be convenient.

For example select the following lines:

int x = 3;
double y = 9.0;
unsigned int z = 6;
const char c = 'A';

And type M-x align RET. The result is:

int          x = 3;
double       y = 9.0;
unsigned int z = 6;
const char   c = 'A';

I should add, though, that this will not always work. If there are no regular expressions defined for the major-mode of the current buffer, then the call to align will do nothing. Then, you need to fall back on align-regexp. But this is hardly a large inconvenience. I actually use align-regexp fairly frequently. For convenience, I have defined an alias to save myself a few key-strokes:

(defalias 'ar #'align-regexp)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文