2

次のようなテキストがあります。

変数
variable2、var3、および var4 を移動して、4 つの変数すべてが整列されるようにします。を使用して、列を視覚的に選択できますCTRL-V j j w。しかしその後、変数 2、var3、および var4 の前にある余分なスペースを再インデントまたは削除するにはどうすればよいでしょうか?

複数の行が variable1 に配置されているため、variable1 を移動することはできません。また、プラグインを使用することはできません。

基本的なvimコマンドを使用して、プラグインを使用せずにこれを行う簡単な方法はありますか?

ありがとう。

4

4 に答える 4

6

そのブロック選択を行ってから

:'<,'>s/\v%V\s+//

これが行うことは、ビジュアル選択内で見つかったすべての連続した開始空白を「ザップ」することです。

デモ:

ここに画像の説明を入力

于 2013-09-11T22:35:53.903 に答える
2

'variable1' の 'v' のすぐ下の 2 行目にカーソルを置きます。列を選択して削除します。これは、CtrlVjjdです。

好きなだけ繰り返し.ます。

u列を削除しすぎた場合は、元に戻す ( )。;-)

于 2013-09-11T22:34:05.067 に答える
1

プラグインを使用しない場合、その特定の例を整列させる最も簡単な方法は、va既に述べたように、以下の 2x3 列を視覚的に選択し、ヒットxして削除することです。プラグインを使用しないと、より一般的なソリューションは考えられません。

不要なスペースの前にカーソルを置き、を押し2xて 2 つのスペースを削除し、 を使用jして下に移動し、 を使用.して 2 文字の削除を繰り返すなど、繰り返し可能なこともできます。後続の行で繰り返します。

最後に、他のパターン化されたコマンドを処理するマクロを作成できますが、可変アライメントの状況に適したマクロを作成するには、ある程度の練習が必要であり、この回答の範囲外です。

于 2013-09-11T22:35:39.123 に答える
1

VISUAL BLCOK で実行する場合:

カーソルが 2 行目の先頭 ( c of char) にあると仮定すると、次のことができます。

whCtrl-Vjjhx

マクロでも実行できます。カーソルがまだ にあると仮定するとchar、単一行の場合、次のことができます。

w2X

次に、次のように記録できます。

qqw2Xj0q
于 2013-09-11T22:35:59.843 に答える