6

テキストやコードを編集するときに、スペースの長方形を挿入して配置したいという状況に遭遇することがよくありますが、挿入するスペースの数が正確にはわかりません。

たとえば、次の(非常に工夫された)スニペットについて考えてみます。

void *var = (void *)typedVar;
void *otherVar = voidStarOtherVar;
int intVar = x*y;
int intVar2 = y*z;

デフォルトのCモードでM-x alignは、次のようになります。

void *var      = (void *)typedVar;
void *otherVar = voidStarOtherVar;
int   intVar   = x*y;
int   intVar2  = y*z;

ただし、(何らかの理由で)希望する配置が次のようになっているとします。

void *var      = (void *)typedVar;
void *otherVar =         voidStarOtherVar;
int   intVar   =         x*y;
int   intVar2  =         y*z;

それを行うために私が知っている唯一の方法はM-x string-rectangle、下の3行で、正確な数のスペースを入力することです。

ただし、スペースを入力する前に文字数を数えたくないので(void *)、「インタラクティブな」長方形の文字列を挿入すると便利です。たとえば、このインタラクティブモードでスペースを入力すると、テキストにすぐに反映されます。別のスペースに入ると挿入されます。このようにして、テキストを希望の位置にインタラクティブに配置できます。

これを実現するための組み込みの方法はありますか?または、それが失敗した場合、どういうわけかこの機能を作成できますか?

4

3 に答える 3

7

あなたの例では、開いた長方形が役立つ場合があります。

C-x r o' Insert blank space to fill the space of the region-rectangle (開いた長方形')。これにより、リージョン四角形の前の内容が右に押し出されます。

したがって、目的の長方形をマークすると、この関数はコンテンツを長方形の右側にプッシュします。

于 2012-10-19T19:54:02.027 に答える
2

すでに提示されているものに代わる別の方法はmultiple-cursorsgithubあります。これは非常にインタラクティブでとても楽しいものです。崇高なEmacs Rocks があります! YouTube でそれをカバーするエピソード。

于 2012-10-19T20:55:29.593 に答える
2

はい。内蔵モードはcua-selection-mode.

作業動画はこちらcua-modecua-selection-mode長方形の選択面のみをアクティブにします。

でこの機能を取得することもできますがiedit、これは外部パッケージです。その主な目的はミラーの編集です。

于 2012-10-19T14:49:02.173 に答える