2017-04-18 94 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