Vimにファイルの最後に空白行を表示させることができますか?
-
05-07-2019 - |
質問
メモ帳でテキストファイルを開くと、テキストを含む最後の行の最後に改行がある場合、空白行が表示されます。ただし、Vimではこの空白行は表示されません。私が気づいたもう1つのことは、Vimエディターがデフォルトで最後の行に改行を追加することです(表示されていなくても)。 Vimで作成されたファイルをメモ帳で開くと、ファイルの最後に空白行が表示されるため、わかります。
とにかく、私はこれらの2つの違いに耐えることができますが、この動作を切り替えることができるVimのオプションがあるかどうか疑問に思っています。
ありがとう
PS-GVim 7.2
[更新]
これは代わりにサーバー障害に意味があるでしょうか?
[更新2]
これを言い直します...単一行のファイルの最後に改行があることを知る必要があります(メモ帳は、Vimではわかりませんが、テキストのない余分な行を表示します)。これは、テキストファイルを読み取り(1行を期待するが、キャリッジリターンを使用)、何らかの目的でテキストを解析するProgressプログラムによるものです。キャリッジリターンがない場合、Progressはその行をnullとして扱います。
[回避策] キャリッジリターンがあることを確認する1つの方法(ただし、2番目のキャリッジリターンを追加しないことを確認してください)は、行末書き込みオプションがオン(:set eol)になっていることを確認してから、書き込み/保存。これにより、ファイルに行末が存在しない場合は、行末が挿入されます。それ以外の場合、新しいものは追加されません。
解決
:help endofline
vimが余分な改行を追加しないようにする方法を説明しています。
他のヒント
vimは改行を改行文字として扱い、メモ帳は改行を改行として扱います:from http://en.wikipedia.org/wiki/Newline
また、 改行は、行を終了または分離します。 改行が 区切り文字、改行はありません ファイルの最後の行の後。の ほとんどのシステムでの一般的な規則は 最後の後にも改行を追加する 行、つまり改行を行として扱う ターミネーター。一部のプログラムには の最後の行の処理に関する問題 ファイルが改行で終了していない場合。 逆に、期待するプログラム セパレータとして使用される改行 最終改行を開始として解釈する 新しい(空の)行。これにより、 報告されている別の行数 ファイル用ですが、それ以外は 通常は無害です。
正しく思い出すと、unix-yシステムではテキストファイルを改行で終了する必要があります。
便利なVimオプションの1つは
set list
すべての行末文字(および場合によっては他の一般的に不可視の文字)を確認するのに役立ちます。したがって、メモ帳だけでなく、Vimでこの最後のエンドラインを直接表示できます。
VIMでファイルを開くと、ファイル名の後にステータス行に [noeol]
と表示されます。それが一つの目安です。 Manni が言ったように、 endofline
オプションとバイナリ
オプションがオン。これを .vimrc
ファイルのデフォルト設定として設定できます。