我经常遇到编辑文本或代码的情况,我想插入一个空格矩形来对齐事物,但我不确切地知道要插入的空格数.
例如,考虑以下(非常人为的)代码段:
void *var = (void *)typedVar;
void *otherVar = voidStarOtherVar;
int intVar = x*y;
int intVar2 = y*z;
Run Code Online (Sandbox Code Playgroud)
在默认的C模式下,M-x align结果如下,这更好:
void *var = (void *)typedVar;
void *otherVar = voidStarOtherVar;
int intVar = x*y;
int intVar2 = y*z;
Run Code Online (Sandbox Code Playgroud)
但是,假设我想要的对齐(出于某种原因)是这样的:
void *var = (void *)typedVar;
void *otherVar = voidStarOtherVar;
int intVar = x*y;
int intVar2 = y*z;
Run Code Online (Sandbox Code Playgroud)
我知道这样做的唯一方法是M-x string-rectangle在底部三行,并输入确切的空格数.
但是,我不想(void *)在键入空格之前计算字符数,因此最好有一个"交互式"矩形字符串插入.例如,我在这种交互模式下键入一个空格,我看到它立即反映在文本中.我进入另一个空间,然后插入.通过这种方式,我可以交互地将文本对齐到我想要的位置.
有没有内置的方法来实现这一目标?或者,如果失败了,我可以以某种方式创建此功能吗?
打开矩形可能对您的示例有用:
C-x r o' Insert blank space to fill the space of the region-rectangle (开放式矩形").这会将区域矩形的先前内容推向右侧.
因此,您标记所需的矩形,此功能将内容推送到矩形的右侧.