web-dev-qa-db-ja.com

エディターで改行と復帰を参照してください

Linuxで改行や改行を確認できるテキストエディターを知っている人はいますか? Vimはこの機能をサポートしていますか?

146
usertest

Vimの:set listは空白を表示します。行末は「$」として表示され、復帰は通常「^M」として表示されます。

119
jay.lee

公式の回答に同意しない場合:

:set listnot ^ M文字(CR)を表示します。 vi/vimに-bオプションを指定すると機能します。または、vimが読み込まれたら、:e ++ff=unixと入力します。

212
CaptSaltyJack

VIは、次の行に後続のテキストを表示することにより、改行(LF文字、コードx0A)を表示します。

バイナリモードには-bスイッチを使用します。たとえば、vi -b filenameまたはvim -b filename --

その後、Unixスタイルのファイルでは通常使用されないCR文字(x0D)を文字^Mとして表示します。

76
Larry K

:set listは、^MなしでCRをe ++ff=unixとして表示しない理由と、:set list^Mに関係ない理由を明確にするためだけです。

内部的にVimがファイルをそのバッファーに読み込むと、すべての行末文字を独自の表現に置き換えます(これを$ 'sと呼びましょう)。削除する文字を決定するために、ファイルに保存されている行末がどのフォーマットであるかを最初に検出します。 CRLF '\r\n'のみ、またはCR '\r'のみ、またはLF '\n'のみの行末文字がある場合、'fileformat'はそれぞれdosmacおよび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'」と入力してください。

22
Paweł Smolak

次のコマンドを試してください。

:バイナリを設定

VIMでは、これは「-b」コマンドラインオプションを使用するのと同じことを行う必要があります。これをスタートアップ(つまり、.vimrc)ファイルに配置すると、常に適切な場所に配置されます。

多くの* nixシステムには、ファイルを処理し、疑わしい行末の問題を修正できる「dos2unix」または「unix2dos」コマンドがあります。行末に問題がない場合、ファイルは変更されません。

10
Brian S. Wilson

コマンドのリストを実行するには、.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¶
5
Arno

geditエディターを使用してブレークラインを表示できます。

まず、インストールしていない場合:

Sudo apt-get install gedit

次に、geditプラグインをインストールします

Sudo apt-get install gedit-plugins

そして、Draw Spacesプラグインを選択し、Preferencesに入力して、Draw new linesを選択します

enter image description here

enter image description here

VSCodeを使用して、Line endings拡張機能をインストールできます。

Sublime Text 3には、行末を表示して任意の行を挿入できるRawLineEditというプラグインがあります終了タイプ

shift + ctrl + pおよびstartプラグインの名前を入力し、行末を表示するように切り替えます。

0
danilo