エディターで改行と改行を確認する


179

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


1
注:多くの場合、改行($)とキャリッジリターン(^ M)は、sshにパテを使用している間は非表示になります。
ヴァネッササンチェス

1
OP選択した回答を再検討する必要があると思います。選択した回答が機能しないため。しかし、CaptSaltyJackの回答はうまくいきます。
JavaSheriff 2018

OP両方が表示されるのは@arnoのソリューションです。3つすべてのファイル形式をランダムに使用するファイルがあるので、両方を表示する必要がありました...そして、arnoのソリューションは機能します
Wayne Walker

回答:


138

:set listVimでは空白が表示されます。行末は「$」と表示され、復帰は通常「」と表示されます^M



253
不正解です。文字(CR)は:set list表示されません^M。供給-bのvi / vimの動作するためのオプションを。または、vimが読み込まれたら、次のように入力します:e ++ff=unix
。– CaptSaltyJack

15
参考までに、「リストの設定」モードをオフにするには、次を使用します:set nolist
友文

@ともふみさんのご意見を添えた編集は大歓迎です!
Pipo

1
間違った答え。:setリストは^ M文字(CR)を表示しません。vi / vimで-bオプションを使用すると機能します。
nanosoft 2018年

265

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

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


4
それは構文です。 :help edit示していますe[dit]! [++opt] [+cmd]。そして、:help ++e言う[++ OPT]引数はオプション「fileformat」[..]の値を強制するために使用することができます
デニス

19
明確にするために、:set list改行($)を:e ++ff=unix示し、CR(^M)を示します。あなたは両方、見たい場合は:set list、その後:e ++ff=unix
Yiboヤン

5
@dennisのコメントを拡張して、:set ff=unixVimに(ファイル形式の設定の一部として)行末をUNIXスタイルに変更するように指示します。これにより、^ M文字は表示されなくなります(したがって表示されません)。実際に内容を変更せずに:e ++ff=unixファイル形式を強制的に設定するように指示しunixます。したがって、vimはそれをUnixファイルのように読み取り、CR文字を追加として認識し、^ Mとして表示します。
sundar-モニカを

2
それでもvim、何らかの理由で私にとってはどちらも動作しません...私は-bオプションも意味もしません::e ++ff=unix
RAM237

3
よし、:e ++ ff = unixは動いた。どうすればオフにできますか?
Croo

78

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

-bバイナリモードのスイッチを使用します。例:vi -b filenameまたはvim -b filename --

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


私はほとんどの場合Unix環境で作業しているため、通常は行末を確認する必要はありません。ただし、ファイルに何かがある場合は、Windowsタイプの行末について警告されます。ウィルvi -b filename:set binaryだけを示して^M、それは窓のタイプのファイルなし他の行末そうですか?
alpha_989

31

なぜ:set listCRがないとCRが表示され^Mないのe ++ff=unixか、なぜCR と:set listは何の関係もないのかを明確にするため^Mです。

内部的には、Vim がファイルをバッファーに読み込むと、すべての行末文字を独自の表現に置き換えます(それをと呼びましょう$)。削除する文字を決定するために、最初に、ファイルに保存されている行末がどの形式であるかを検出します。唯一CRLFがある場合'\r\n'のみCR '\r'またはLFのみ'\n'行終了文字、その後'fileformat'に設定されdosmacそしてunixそれぞれ。

ときにlistオプションが設定され、Vimは表示$改行が何に関係なく発生した文字fileformatが検出されたオプションを選択します。改行の独自の内部表現を使用し、それが表示されます。

今、あなたは時に書く Vimの挿入行終了文字が何によると、ディスクにバッファfileformatオプションは、基本的にすべてのそれらの内部変換、検出された$適切な文字でのを。fileformatたまたまそうなった場合は、内部の改行の代わりにunix単にそれを書くでしょ\nう。

コツは、Vimにdosエンコードされたファイルをunix1つとして読み込ませることです。正味の効果は、すべてのをそのまま\n残し、バッファー内の\rとして表示すること^Mです。設定:set listはさらに、内部の行末をとして表示し$ます。結局のところ、エンコードされた改行の^M$代わりに表示されますdos

また、の表示と:set listは関係がないことに注意してください^M。あなたは(あなたが無効になっている作る自分でそれを確認することができますlist使用して単一のCRを挿入することにより、最初のオプションを)CTRL-Vに続いてEnter、挿入モードインチ バッファをディスクに書き込んで再度開くと、オプションが0に設定されている^Mにもかかわらず表示listされます。

ファイル形式の詳細については、http://vim.wikia.com/wiki/File_formatまたは:help 'fileformat'Vimに入力してください。


11

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

:set binary

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

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


残念ながら私のシステム(Ubuntu 16.04)ではset binaryと同じではありませんvim -b filename.py。なぜだと思いますか?私はチェックしましたがhelp、あなたの言うことは一般的に正しいようです。なぜそうなのか、どうしたら分かりますか?
alpha_989

:e ++ff=unixタイプファイル^Mを使用しても正しく表示されません。表示されませんunix。問題は今のところ解決されていると思います...
alpha_989

6

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

2

で使用するcat-A、あなたは、新しい行を見ることができる$タブとして、^I
cat -A myfile


0

改行はgeditエディターを使用して表示できます。

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

sudo apt-get install gedit

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

sudo apt-get install gedit-plugins

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

ここに画像の説明を入力してください

ここに画像の説明を入力してください

使用VSCodeをインストールできるライン語尾拡張子を。

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.