例如, 对中间的=对齐, 有这样的插件么? 或者用align-regexp 怎么写呢? VIM的vim-easy-align就很容易做到.
int a = 5;
static short b = 166;
char c = 'c';
例如, 对中间的=对齐, 有这样的插件么? 或者用align-regexp 怎么写呢? VIM的vim-easy-align就很容易做到.
int a = 5;
static short b = 166;
char c = 'c';
M-x align,可以得到:
int a = 5;
static short b = 166;
char c = 'c';
参见:
看链接里面:
Use
M-x align-regexp(here,M-x align-regexp RET = RET). You can also add an “alignment rule” to the variablealign-rules-list, so that in futureM-x alignwill do it. See the documentation (C-h f align) for details.
你有成功的代码例子么, 最简单的右对齐就行.
你看一下这个是不是你要的:
谢谢, 不是
这种看着不难受吗 
有没有用取决于具体的数据, 有的时候我会因为命名方式关注词尾
align-regexp有个complex模式,可以满足一定的复杂对齐需求。
如下是原始文本,来自vim-easy-align:
Lorem = ipsum
dolor = sit
amet += consectetur == adipiscing
elit -= sed != do
eiusmod = tempor = incididunt
ut &&= labore
运行C-u M-x align-regexp进入复杂模式:
\(\w+\) 来匹配文本-1 对齐第1个匹配到的分组,负数表明对齐0 不使用额外的空格来对齐y 重复执行之后会得到这个结果:
Lorem = ipsum
dolor = sit
amet += consectetur == adipiscing
elit -= sed != do
eiusmod = tempor = incididunt
ut &&= labore
不过看起来符号没有对齐 
人工处理一下吧
给大佬跪了, 没错, 这就是我想要的!! 太凶残了!!!
但是我还是要问一下, 大佬是怎么学会的呢? 是align-rules-list的文档么? 也太晦涩了, 我是太无能没法从中读出怎么做到的…
第二条就是如果我想从交互模式中跳出来, 直接写一个指令绑快捷键该怎么写呢? 这些交互的输入怎么可以直接传入呢? 还是不能直接用align-regexp了, 要根据它的callee:align-region来重写?
包一下就行了,然后把 vim-easy-align 绑定到你喜欢的快捷键上
(defun vim-easy-align (beg end)
(interactive "r")
(align-regexp beg end "\\(\\w+\\)" -1 0 1))
(global-set-key (kbd "C-M-/") #'vim-easy-align)
我是平常有经常使用align-regexp的,不过一直都是用的简单版本。你说的这个问题很容易就联想到可以使用align-regexp来解决,因为只有它能处理多列。后来就试用了一下,就好了 ![]()
第2条的话楼上已经回答了 ![]()