2011-06-20 7 views
6

私ははvimdiffを使用してPythonのファイルをマージし、その結果がこのようなものがあります。この状態ではvimで複数行を編集できますか?

def code(): 
    line 1 
    line 2 
    line 3 
    line 4 
    ... 
    line n 

を、インデントが矛盾しています。どのように私は行の前にすべてのスペースを削除することができますか?私はビジュアルモードで試しましたが、それはライン全体を選択しています。 vimには複数行の編集がありますか?メモ帳++ではこれをAlt-Shiftで使用できます。

答えて

6

Ctrl-Vブロックを選択する。

または、ファイル内のすべての行の開始時にすべてのホワイトスペースを削除するには:

:%s/^\s\+ 
+2

あなたがあなたのコードを整列するために列を選択し、次にjではCtrl-Vを使用する場合は、ヒット '<'列の後ろにあるコードをシフトします。 – Benoit

+0

@Benoit:素晴らしいトリック!私はしばしば行の途中でインデントを増減します:今まではスペースをペイントしていました! –

6

あなたの問題に少なくとも二つの解決策があります。

  1. はブロック状でありCtrlvを使用して入力するモードを選択します。あなたの行の先頭にスペースを選択し、dを打つことができます。

  2. また、あなたがシフトVでビジュアルモードを入力することで、変更したい行単位の行を選択することができます(その後、選択するために、矢印またはJを下に使用します)。 1つのインデントレベルを削除するには、<を使用します。 を使用してください。複数のインデントを削除する場合は、最後の操作を繰り返します。

3

シフトVは視線モードになります、そしてあなたは押すことができます:のみ選択した行を上に実行するコマンドを入力することを。 VISUALモードでは

3

あなただけが再インデントしたいと=を打つすべての行を選択する必要があります。

は、私はメモ帳を使用したことがありません++が、私はあなたが呼んで複数行の編集はVimがVISUAL BLOCK呼んで達成可能であることを考える:代わりのV<C-v>を打ちます。その後、テキストの矩形部分を選択することができます。列を取得したら、IまたはAを入力してEDITモードに入り、<Esc>を入力して編集をすべての行に適用します。単一のスペースを削除したいので、視覚的にスペースの列を選択し、xまたはdを打つ必要があります。あなたはまた、簡単な検索/置換でそれを行うことができます

、私は推測します。または:normを使用します。

関連する問題