「:setリスト」に「EOL」ではなくCRとLFを表示します


12

EOL文字として表示される1つの文字を選択するのではなく、ファイルがunixまたはdosであるかどうかに関係なく、CRとLFの両方に対して個別に表示したいです。これは可能ですか?


2
だから私が正しくあなたを理解し、あなたが何かをしたい場合Hello%$(ここで、DOSファイル用の%CRがあると$されますかLF)?これはでは不可能であるlist/ listchars...設定、と私は本当にどちらかVimScriptでこれを行う方法を考え出すことはできません
マーティンTournoij

1
@Carpetsmokerそうですね。別に、特定のキャラクターとしてset list持っCRLF表示する方法はありますか?
キャプテンマン

2
特定の色で強調表示できる場合がありますが、ハッキーではない特定のキャラクターとして表示する方法はありません。
エバーグリーン

一度にCRまたはLFのいずれかが表示されると思いますが、両方は表示されません。
SibiCoder

1
set stl+=\ [%{&ff=='mac'?'CR':&ff=='unix'?'LF':'CRLF'}]
アントニー

回答:


2

いくつかの注意事項がありますが、Vimのバイナリモードを使用してこれを行うことができます。あなたはコマンドを使いたいかもしれません

vim -b +'set list' somefile

または、次の行をに入れることができます.vimrc

:set binary
:set list

重要なことは、問題のファイルをバッファに読み込む前にバイナリモードを設定する必要があることです。Vimがファイルを読み込んだら、手遅れです。このトリックは、Vimがファイルを読み込む方法を変更することに依存しています。具体的には、Vim がファイルの特定のタイプを推測しようとしないようにする必要があります<EOL>

バイナリモードは、この自動行区切り検出を無効にして、必要な処理を行いますが、他にも多くのことを実行します。

  • 'textwidth'0に設定します
  • 'wrapmargin'0に設定します
  • 設定解除 'modeline'
  • 設定解除 'expandtab'

だから、あなたはこれをあなたの中に持ちたくないかもしれません.vimrc。この特別な種類の表示が必要なファイルに対してのみ、コマンドラインバージョンを使用することをお勧めします。

詳細については:

  • :help 'binary'
  • :help edit-binary
  • :help file-read
  • :help file-formats
  • :help 'fileformat'

but it does quite a few other things as wellこれは、バイナリがFileTypeいくつかの自動コマンドを使用しているのか、それとも何らかの組み込みの避けられないものだからですか?
キャプテンマン

そのフレーズによって、私はそれに続くリストを紹介するつもりでした。
Ptolemarch

右、私はちょうどすべてを引用しませんでした:)私が意味したのは、それらの自動コマンドでFileType呼び出さbinaryれたものを使用するため、それらのものを実行することでしたか、それは単に組み込みのものでしたか?
キャプテンマン

1
ああ、そう。これはいずれもファイルの種類とは関係ありません(ただし、ファイル形式にはかなり追いついています)。これは、バイナリモード自体の一部です。を参照してください:help 'binary'。そして多分:help 'fileformat'
Ptolemarch

0

に追加する場合~/.vimrc

set ffs=unix
set list

それは常にととして表示CRされます。^MLF$

デフォルトでは、vimは末尾のみを持つファイルをCRLFdosファイルとして解釈し、として表示CRLF$ます。を設定するとffs=unix、vimが常にUNIXファイルとして開くように強制されるため、CRは余分な文字として扱われます。

注:dosファイルを変更して保存する場合は注意してください。を押すとENTER、挿入されるのはLF。をCR入力して手動でを挿入する必要がありますCTRL+V, CTRL+M

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