例如, 对中间的=
对齐, 有这样的插件么? 或者用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 align
will 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条的话楼上已经回答了