Linuxで改行や改行を確認できるテキストエディターを知っている人はいますか? Vimはこの機能をサポートしていますか?
Vimの:set list
は空白を表示します。行末は「$
」として表示され、復帰は通常「^M
」として表示されます。
公式の回答に同意しない場合:
:set list
はnot ^ M文字(CR)を表示します。 vi/vimに-bオプションを指定すると機能します。または、vimが読み込まれたら、:e ++ff=unix
と入力します。
VIは、次の行に後続のテキストを表示することにより、改行(LF文字、コードx0A
)を表示します。
バイナリモードには-b
スイッチを使用します。たとえば、vi -b filename
またはvim -b filename --
。
その後、Unixスタイルのファイルでは通常使用されないCR文字(x0D
)を文字^M
として表示します。
:set list
は、^M
なしでCRをe ++ff=unix
として表示しない理由と、:set list
が^M
に関係ない理由を明確にするためだけです。
内部的にVimがファイルをそのバッファーに読み込むと、すべての行末文字を独自の表現に置き換えます(これを$
'sと呼びましょう)。削除する文字を決定するために、ファイルに保存されている行末がどのフォーマットであるかを最初に検出します。 CRLF '\r\n'
のみ、またはCR '\r'
のみ、またはLF '\n'
のみの行末文字がある場合、'fileformat'
はそれぞれdos
、mac
およびunix
に設定されます。
list
オプションが設定されている場合、Vimは、fileformat
オプションが検出されても、改行が発生したときに$
文字を表示します。改行の独自の内部表現を使用し、それが表示されます。
これで、ディスクにバッファーをwriteバッファーすると、Vimはfileformat
オプションが検出されたことに応じて行末文字を挿入し、これらすべての内部$
を適切に変換します文字。 fileformat
がたまたまunix
だった場合、内部の改行の代わりに\n
を書き込むだけです。
トリックは、Vimがdos
エンコードされたファイルをunix
oneとして読み込むようにすることです。最終的な効果は、\n
をすべて削除し、\r
をそのままにして、バッファー内で^M
として表示することです。 :set list
を設定すると、内部で行末が$
としてさらに表示されます。結局、dos
でエンコードされた改行の代わりに^M$
が表示されます。
また、:set list
は^M
の表示とは関係がないことに注意してください。挿入モードでCTRL-V
に続いてlist
を使用して単一のCRを挿入することにより、自分で確認できます(最初にEnter
オプションを無効にしていることを確認してください)。バッファをディスクに書き込んで再度開くと、list
オプションが0に設定されているにもかかわらず、^M
が表示されます。
ファイル形式の詳細については、 http://vim.wikia.com/wiki/File_format またはVimで「:help 'fileformat'
」と入力してください。
次のコマンドを試してください。
:バイナリを設定
VIMでは、これは「-b」コマンドラインオプションを使用するのと同じことを行う必要があります。これをスタートアップ(つまり、.vimrc)ファイルに配置すると、常に適切な場所に配置されます。
多くの* nixシステムには、ファイルを処理し、疑わしい行末の問題を修正できる「dos2unix」または「unix2dos」コマンドがあります。行末に問題がない場合、ファイルは変更されません。
コマンドのリストを実行するには、.vimrcファイルを編集することをお勧めします。 .vimrcファイルを次のように編集します。
cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF
Vimを実行すると、.vimrcへのコマンドが実行され、次の例を見ることができます。
My line with CRLF eol here ^M¶
geditエディターを使用してブレークラインを表示できます。
まず、インストールしていない場合:
Sudo apt-get install gedit
次に、geditプラグインをインストールします:
Sudo apt-get install gedit-plugins
そして、Draw Spacesプラグインを選択し、Preferencesに入力して、Draw new linesを選択します
VSCodeを使用して、Line endings拡張機能をインストールできます。
Sublime Text 3には、行末を表示して任意の行を挿入できるRawLineEditというプラグインがあります終了タイプ
shift + ctrl + p
およびstartプラグインの名前を入力し、行末を表示するように切り替えます。