2011-09-20 5 views
8

これをサポートしている私がこれまで使ってきた唯一のエディタ(ただし、たくさんありますが)はSublime Text 2ですが、emacsもその袖を上げてくれることを願っています。私が扱っているクラスの中には、ソースが列化されている場合には、かなり宣言的な構文がより綺麗に見えるものがあります。この問題は、新しい行が1つの列の長さを1つまたは2つ増やしたときに発生します。次に、各行を再整列させる必要があります。その列が他の列よりもさらに拡張し、私はしたい場合、私はその一つの行を追加したEmacs:行全体ではなくテキストを整列させますか?

ここ

Columnized text out of alignment

のスクリーンショットは、おそらく私が取得しています何を明確にそれをもう一度再調整してください。通常は、すべての行を並べ替えるまで、矢印とスペースバーの周りを指でくり返すだけですが、長方形の領域と力を選択する方法があれば良いでしょうその領域のテキストではない空白部分を整列させます。

これは可能ですか?

+3

ほら! ___エディタはxを、Emacsはxを行うことができますか? Xが水平スクロールバーでない限り、答えはおそらくはいです。 ;) –

答えて

21

長方形を使用するのではなく、align-regexpを使用できます。エリアを選択し、実行します。

(defun my-align-after-commas (beg end) 
    (interactive "r") 
    (align-regexp beg end ",\\(\\s-*\\)" 1 1 t)) 

が続いてエリアを選択し、のMx私-ALIGN-アフターコンマ

:あなたはこの多くを行う場合は

C-u M-x align-regexp RET ,\(\s-*\) RET 1 RET 1 RET y

は、機能を作ります

+0

これはきちんとしたトリックです! –

+0

正規表現の '-'は何ですか? – lmichelbacher

+1

'\ s-'はEmacs regexpの空白を意味します(実際には構文クラスです、興味があればマニュアルを参照してください)。 – scottfrazer

4

Emacsは矩形領域を選択できるようにし、列全体を編集できるようにします。矩形領域を削除するには、マークを一方のコーナーに設定し、他方をポイントしてからM-x kill-rectangleを指定します。矩形の空白を追加するには、同じ方法でそれをマークしてからM-x open-rectangleとします。

これはちょうどその方法です。Iこれを行う方法が分かります。確かに他の、おそらくより良い方法があります。

+0

お返事ありがとうございます。私は列を(この場合)1つのスペースを右に移動し、削除しません。マークを設定すると(Cスペースを意味すると仮定して)、ポイントを他のコーナーに移動すると、マークとポイントの間のライン全体を選択するように見えますか? – d11wtq

+0

申し訳ありませんが、私が入力している間あなたの編集を逃した、何が起こるか見てみましょう、ありがとう! :) – d11wtq

+0

素晴らしい、ありがとう! :) – d11wtq

5

これを変換できるもあります。

(defvar enform-keywords-statements 
    '("AT END" "AT START" "CLOSE" "DECLARE" "DELINK" "DICTIONARY"  
    "EXIT" "FIND" "FOOTING" "LINK" "LIST" "OPEN" "PARAM" "SET"    
    "SUBFOOTING" "SUBTITLE" "TITLE") 
    "List of ENFORM statement keywords. Used to create the `font-lock-keywords' table.") 
この中

(defvar enform-keywords-statements 
    '("AT END"  "AT START" "CLOSE"  "DECLARE"  "DELINK"  
    "DICTIONARY" "EXIT"  "FIND"  "FOOTING"  "LINK"   
    "LIST"  "OPEN"  "PARAM"  "SET"   "SUBFOOTING" 
    "SUBTITLE" "TITLE"  ) 
    "List of ENFORM statement keywords. Used to create the `font-lock-keywords' table.") 

はあなたが整列すると、その後M-x columnize-text地域を選択します。このほかに

EmacsWikiページ:
http://www.emacswiki.org/emacs/CategoryAlignment

関連する問題