2017-04-18 83 views
0

我正在寻找快捷方式或功能来为选择中的所有行添加一个制表符。另外如何减少选项中的一个选项卡到所有行?在Emacs中缩进多行

有多个参考。但是我找不到像在geany这样的常规编辑器中模仿使用选定文本上的制表符和shift-tab的模式。您可以选择多行,然后使用制表符或shift-tab将文本左右移动,直到找到最佳效果。

我发现C-x tab <left> or <right>:这会将选区中的所有行一次移动到左侧或右侧一个空格处。 C-5 C-x tab移动它5个空格,但然后停止。但是我希望这些行一次移动制表符空格,同时保持选择,以便我可以重复或撤消该过程。我怎样才能做到这一点?

基本上,我需要一个功能,我可以在选择一些行后调用。它应该:

  • 选定行
  • 检测开按下(上数字键盘比如说1)的关键应该由5位向左移动选定的文本(和保持选择)
  • 在按下另一个键(在数字键盘上说3),它应该将选定的文本向右移动5个空格(并保持选择)
  • 该函数应该按下ENTER键结束。

可以在上面的能力被添加到C-x tab快捷方式,它的工作原理完全一样(有左右键),但它的动作在时间选择的文本只有一个空格。

+0

但是这是为python文件(扩展名为py的文件)。我想在文本文件(扩展名为.txt)中执行此操作。另外,这些命令只能工作一次。重复一次必须再次执行'Cc>',而不仅仅是'>' – rnso

+0

'python-indent-shift-right'和'python-indent-shift-left'的快捷键组合是什么py和txt文件)? 'Control-c>'和'Control-c <'仅适用于py文件,但不适用于txt文件。 – rnso

+0

点击'C-x TAB'后面跟着'S-'和'S-'就可以做到。如果您在使用该软件时遇到问题,请说出来。您可能正在使用可能没有制表位的模式。参见'C-h v indent-rigidly-map RET'。 – ashawley

回答

0

如果你使用邪恶模式,你可以使用>这个键,根据模式将当前行或选择缩进到一个级别。我不知道如何让它插入标签。通过快速浏览通过关键字(C-h d indent tab RET)的文档看起来我们有可变indent-tabs-mode

压痕可以插入标签,如果这是不无

更一般地,这似乎不以适应您的要求,但几乎可以帮助您连续缩进多行:indent-tools(在melpa上)(我的玩具)。它是用于基于缩进的文件(所以yaml,python,...),并且它提供了一个九头蛇(这有助于重复这些操作):缩进或缩进当前的缩进块,段落等,以及同样评论,删除,折叠和移动缩进块。

2

我正在寻找快捷方式或功能来添加一个选项卡到选择中的所有行。

首先选择一个地区。

C-SPC [set-mark-command] 

线的选择区域,与在第一线和最后最后一行(或反之亦然)的开始点的开始标志,然后

C-x r t [string-rectangle] 
C-q TAB [quoted-insert] 

我发现C-x TAB<left><right>:这会将所选内容中的所有行同时移动到左侧或右侧一个空格处。

您是否看到打S-<left>S-<right>的选项?这应该为你做,Shift + Right,也许只能取决于你在哪种模式以及是否启用indent-tabs-mode