2013-05-31 37 views
2
get_base_exp(PlayerLv)-> 
    case PlayerLv of 
     1->30; 
     2->30; 
     3->60; 
     4->100; 
     5->160; 
     6->240; 
     7->330; 
     8->440; 
     9->570; 
     10->710; 
     11->880; 
     12->1060 
    end. 

以下幾點:如何自動對齊以下代碼?

get_base_exp(PlayerLv)-> 
    case PlayerLv of 
     1 -> 30; 
     2 -> 30; 
     3 -> 60; 
     4 -> 100; 
     5 -> 160; 
     6 -> 240; 
     7 -> 330; 
     8 -> 440; 
     9 -> 570; 
     10 -> 710; 
     11 -> 880; 
     12 -> 1060 
    end. 

回答

5
  1. 選擇要對齊
  2. 的Mx對齊,正則表達式RET行 - RET
  3. 的Mx對齊,正則表達式[0-9] +; - RET

作爲一個完美縮進和對齊代碼的小愛好者,我有一個用於align-regexp和另一個用於對齊的鍵。

+0

由於缺少最後一個分號而導致最後一行數字失敗,否則它是相當完美的; ^) – Seki

+0

@Seki最後的分號是我必須在我的「align-regexp」中使用擴展形式的原因回答。 –

+0

我應該在發佈之前嘗試:-)。無論缺少分號,正確對齊的正則表達式都是「[0-9] +;?$」。 – juanleon

5

這裏有一種方法(我已在全球結合(global-set-key (kbd "C-x \\") 'align-regexp)):

  1. 選擇要對齊
  2. C-x \-RET至12線對齊箭頭
  3. C-x C-x選擇區域再次
  4. C-u C-x \\(>\)RET1RET2RETn的箭頭後對齊的數字
+0

'C-x \ -'沒有效果。當沒有輸入'C-x \'和'-'時,它會顯示'C-x \ undefined' – goofansu

+0

僅供參考,我正在使用emacs24.3 for mac。 – goofansu

+0

對不起,我已經有了'align-regexp'這個很長時間的綁定,我沒有意識到它不是標準的。我更新了答案。 –

3

標記案例表達式並點擊C-u C-c C-a(對於erlang-align-arrows)。這得到接近你想要什麼:

get_base_exp(PlayerLv) -> 
    case PlayerLv of 
     1 ->30; 
     2 ->30; 
     3 ->60; 
     4 ->100; 
     5 ->160; 
     6 ->240; 
     7 ->330; 
     8 ->440; 
     9 ->570; 
     10 ->710; 
     11 ->880; 
     12 ->1060 
    end. 

然後,您可以移動到第一得分之前,打C-SPC,最後得分前移到,並創下C-x r t(用於string-rectangle),並把它插入一個空間在每一行的位置。