GNU/Linux >> Linux の 問題 >  >> Linux

Vim が改行を追加するのはなぜですか?これはコンベンションですか?

Unix テキスト ファイルの規則では、すべての行が改行で終了し、改行は行区切りではなく行末記号です。

Vim がバッファーをファイルとして保存すると、そのファイル形式の行末シーケンス (Unix の場合は改行) ですべての行が終了します。見る

:help 'fileformat'

Unix のテキスト処理ツールを使用している場合は、この規則に従うのが最善です。ただし、ファイルの最終行の末尾に改行を入れたくない場合は、そうすることができます。 Vim は、そのようなファイルを「バイナリ」と見なします。見る

:help 'binary'
:help edit-binary

Vim 8.0 は fixeol でこれを提供するようになりました オプション。具体的には:

:set nofixeol

その場合、Vim はしません ファイルにまだ改行文字がない場合は、最終行の最後に末尾の改行文字を追加します。

それはファイルタイプのプラグイン、またはおそらくあなたの .vimrc に入る可能性があります .

(これは :set binary の改善です binary に対して、最後の改行文字にのみ影響するためです。 また、実際にバイナリ ファイルを編集している場合を除き、他の動作も変更します。)

新しく作成されたファイルには、デフォルトで引き続き改行文字が含まれます。さらに以下を実行することで、これを変更できます (そして、既に最後の改行を持たないファイルに切り替えることができます):

:set noeol

これは、変更するファイルごとに個別に設定する必要があります。ファイルをバッファにロードすると、常に eol が設定されます ファイルの現在の状態に合わせます。


Vim は、ユーザーが自分で入れていないものを追加していません。

「改行」文字はではありません 「改行」であり、両方の例は完全に正常です:

  • 最初の例では、ファイルに 1 行しか含まれていないため、「改行」文字が 1 つ取得されます。
  • 2 番目の例では、ファイルに 2 つの行が含まれているため、2 つの「改行」文字が得られます。

Linux
  1. 改行で終わらない可能性のある行指向のファイルを読みますか?

  2. 改行をNulに置き換えますか?

  3. バックスラッシュと改行シーケンスを削除しますか?

  1. コロンを追加するとこのGrepパターンが壊れるのはなぜですか?

  2. Vimでファイルの最初または最後に移動する[クイックヒント]

  3. vim:コマンドが見つかりません

  1. このコマンドライントリックでPDFサイズを縮小する

  2. shm_open を使用する理由

  3. このファイルを root として削除できないのはなぜですか?