不受限制的代码片段

Use*_*er1 21 emacs tabs

有些时候我有一个代码片段,我想在缺陷跟踪器,维基,论坛等上发布,但它在代码中有很深的缩进.我通常必须突出显示代码片段,点击<shift> - <tab>直到缩进不是那么糟,然后复制/粘贴然后还原代码.这有点痛苦.

是否有工具可以删除每行前面的标签?请注意,我不想删除所有行中的所有选项卡,只是从每行中删除相同的前一个选项卡.我在想Emacs的一些功能可以做到这一点.

这是一个极端的例子:

之前:

                            //This is usually some method in an anonymous inner class' anonymous inner class.
                            @Override
                            public void method(){
                                doSomething();
                            }

后:

//This is usually some method in an anonymous inner class' anonymous inner class.
@Override
public void method(){
    doSomething();
}

请注意doSomething()如何在它前面只有一个标签.

Bah*_*bar 40

矩形选择是我这样做的首选方式.

把自己放在第一行的开头C-space,转到最后一行,以及要删除的缩进的结尾和C-x r k(矩形杀死).这样做.


Ale*_*bas 13

在Emacs中执行此操作的实际方法是使用此组合键.

首先选择要从中删除选项卡的部分.

您可以选择整个缓冲区:

CTRL+x h

或者,如果您只想要一个区域,只需将标记CTRL+ 设置为SPACE您想要开始的位置,然后导航到您想要结束的位置.

然后删除空格,对于10个空格字符执行此操作:

CTRL+ - 10 CTRL+x TAB


由于这个很大,我会为你分解.

1)首先我们给出负参数命令:

(负面论据ARG)

kbd快捷方式:CTRL+-

2)接下来提供数值参数,在本例中为数字10:

10

3)然后我们调用indent-rigidly命令

(缩进刚刚开始结束)

kbd快捷方式:CTRL+x TAB

所以我们正在做的是给命令-10的参数进行缩进 - 结果是从我们选择的每一行的开头删除10个空格字符,在这种情况下我们选择了整个文档(CTRL+ x h),因此将从整个文档的每一行的开头删除10行空格.

如果某个特定行的空格少于10个,那么它只会删除尽可能多的空格,如果有超过10个空格,则可能会在完成后留下一些空格.

在你的例子中看起来你有大约30个前导空格,所以这应该做的伎俩:

CTRL+ - 30 CTRL+x TAB

如果要删除更多,请尝试更大的数字.


Jos*_*ews 7

如果您的emacs c风格设置正确,那么只需突出显示该代码段并按下即可正确C-M-\缩进(如果您使用的是c ++模式).