3

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

This is a normal line. 
       6 spaces are before me.              //line 1 
      4 spaces are before me.               //line 2 
    3 spaces are before me.                 //line 3 
       6 spaces are before me.              //line 4 
     4 spaces are before me.                //line 5 
Another normal line.
   2 spaces are before me. But that is ok.  //line 7 
Line goes on.

vim を使用して 1 行目から 5 行目までのすべてのスペースを選択して削除するにはどうすればよいですか?

4

3 に答える 3

7

ビジュアルラインモード(Shift+ V)を使用して必要なラインを選択し、それらに対して置換コマンドを実行します(ヒットすると、最初に:ビジュアルマークが自動的に含まれるはず'<,'>です):

:'<,'>s/^\s*

これは、作業中で行番号がわからない場合に便利です。この場合、2行目から6行目であることがわかっているので、次のことができます。

:2,6s/^\s*

行番号をすばやく把握するための便利なオプションはですset number

\s*置換コマンドは、各行の先頭()からすべての空白( )を貪欲に取得^\s*し、何も置き換えません(と同等/^\s*//)。

于 2012-08-20T14:33:36.257 に答える
2

もう1つの簡単な方法:<<コマンドを使用することもできます。1行目に移動し、Enter5<<キーを押して1〜5行目を左にシフトします。.すべての空白が消えるまで、コマンドを繰り返します。これは、を使用してインデントを増やす場合にも役立ち>>ます。

于 2012-08-21T11:33:53.613 に答える
1

If there is no indention defined for this file, you could use ={motion}. If the cursor is on the first line, do =G to indent to the end of the file or =} to indent to next empty line.

To do it for this and the following 4 lines use =4j.

于 2012-08-21T11:39:18.207 に答える