如何将Emacs中的选定文本区域移动一定数量的空格?


Answers:


40

使用command indent-rigidlyC-x TAB默认情况下绑定。

您可以使用前缀参数(例如)指定要缩进的空格数C-5 C-x TAB

或者,您可以调用该命令,然后使用向左/向右箭头以交互方式调整缩进级别。


如何添加前缀参数?
瓦斯2015年

1
例如C-5 C-x TAB,尝试缩进当前区域5个空格。
glucas

很好,但是为什么第一行也不会移动?我必须抓住选择上方的行的最后一部分,以使我要移动的那组行。
瓦斯2015年

1
您不需要从上一行中选择任何内容,但是您确实希望从要缩进的第一行的开头进行选择。例如,C-a移至该行的开头,C-SPC开始标记该区域,C-n C-n向下移动几行,C-5 C-x TAB缩进这两行。
glucas

1
“使用左/右箭头以交互方式调整缩进级别”真的吗?大!我不知道这一点,有时我不得不猜测我需要添加或删除多少空间。希望对您有所帮助。
imz –伊万·扎哈拉里舍夫(Ivan Zakharyaschev)

9

如果您使用python-mode.el C-c >C-c <向左或向右移动块


如果我不选择上方的最后一行,为什么选择的第一行保持不动?
Vass 2015年

我无法重现此行为。选择的所有行均已移动。Emacs 24.4
Lompik

glucas的评论说,如果您不从生产线的开头进行选择,就会发生这种情况
Vass 2015年

6

string-rectangle命令(C-x r t)可以被用于插入在选择的区域中的任何任意的文本(包含空格)。

假设您有此文本块,并且要在所有行的前面插入5个空格。

abc
  def
    ghi

首先选择一个“ 0列”区域,如下所示(该点位于字符“ a”上,标记位于包含“ ghi”的行的同一列中:

▮bc
  def
▯   ghi

现在使用string-rectangle,将要插入的文本插入所选区域。在此示例中,我们将在所有行上(包括点和标记之间)插入5个空格。

C-x r t M-5 SPC RET

这将给出以下强制缩进的文本。

     abc
       def
         ghi

4

C-x TAB(绑定到indent-rigidly)。给它一个前缀参数以指示您希望缩进多少空格,负数则删除那么多空格。


0

我发现先按Alt-4再按SPC,即可得到理想的结果。不知道这是否是最好的方法,但它也能正常工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.