viで@とマークされたファイルから空白行を削除する方法

viで@とマークされたファイルから空白行を削除する方法

viでファイルを開くと

〜のように

vi file

Current partition replica assignment
@
@
@
@
@
{"version":1,"partitions":[{"topic")]
@
@
@
@
@
Proposed partition reassignment configuration

しかし、私はこの空の行を削除しようとしています。

〜のように

sed -i 's/^ *//; s/ *$//; /^$/d; /^\s*$/d' file

または

sed -i '/^$/d'  file

または

sed -i '/^$/d' file

それでもファイルに空白行があります

空/空行を削除する方法は?

ベストアンサー1

人々はいいえ空白行ですが、ラップ後も行が長すぎて画面に表示されません。

$ perl -e 'print "foo\n", "bar " x 4096' >/tmp/file
$ vim /tmp/file

foo
@
@
@
...

これは基準説明する:

ビジュアルモードで、編集バッファの行(現在の行を除く)がディスプレイの下部のレンダリングに使用できる行に合わない場合、エディタはその行のどの部分も表示しないように選択できます。したがって、編集バッファのテキストを含まないバーは、単一の「@」文字で構成する必要があります。

vimこのオプションのマニュアルも参照してくださいdisplay

「lastline」または「truncate」の両方が含まれていない場合、最後の一致しない行は「@」行に置き換えられます。

^@通常、(キャレットを参照)として表示されるnullバイトと混同しないでください。また、この動作は普遍的ではありません(では実装されていないようですnvi)。

おすすめ記事