如何在emacs上的缩进之间切换?

eap*_*rio 2 emacs

emacs n00b在这里.

我每周至少遇到一次这个问题,我每次都有一个带有参数的函数调用,但是我想重新格式化,以便所有参数都转到一行,即我想从:

f(
  x,
  y,
  z
);
Run Code Online (Sandbox Code Playgroud)

至:

f(x, y, z);
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

phi*_*ils 6

通常,自定义重新格式化要求的一种简单方法是创建一个键盘宏,它以通用方式执行所需的编辑.

像穿越性别和平衡表达,在区域内搜索和替换,以及缩小和扩大缓冲区这些能力都使得这类事情变得非常简单.

然后,您可以为宏指定名称,将其定义输出到init文件中,并将其绑定到密钥以供将来使用,所有这些都不需要elisp知识.

C-hig (emacs) Keyboard Macros RET

编辑:(对于"Emacs n00bs"无处不在).

学习如何使用键盘宏.学习曲线非常浅1,从长远来看,他们将获得惊人的红利.

一旦你了解了它们是如何工作的,就强迫自己使用它们:每当遇到问题时,请对自己说"我能用键盘宏做这个吗?" 如果您认为答案是肯定的,那就试一试吧.

如果你没有让自己开始使用它们,你可能不会经常在用例出现时考虑它们; 但一旦他们是你的工具包的熟悉的部分,你会使用他们发现自己非常有规律.

1层浅,但可能更长比预期的,当你逐渐认识到到底有多少,你可以用实际的东西完成.当我发现我不局限于单个缓冲区时,我自己的清晰时刻出现了,并且从多个缓冲区中关联/提取/转换数据是我可以轻松实现的自动化.

当然,宏可以做任何你能做的事情,所以它们的力量随着你对Emacs的了解而增长.