web-dev-qa-db-ja.com

Vimでeoldoc chars ^ Mを非表示にするにはどうすればよいですか

windowsのgvimで、CRLF eolを含むテキストがある場合、テキストは各行の終わりに^ Mと表示されます。

その特別な文字を表示から「隠す」にはどうすればよいですか?

:setnolistコマンド "" "はそれを却下しません。私は困惑しています。

更新

:set fileformats = unix、dosをリストとして実行しましたが、最初は機能しませんでした。ファイルを閉じて再度開いたところ、機能しました。デフォルトでは、fileformatsをunix値のみに設定していました。答えてくれてありがとう。

36
marekj

fileformatdosに設定することをお勧めします。

:ed ++ff=dos %

それらを非表示にするには:

:set fileformats=dos

それらを削除するには(後でファイルをUNIXファイルとして保存できるように):

:%s/\r//g
21
jqno

もちろん、DOSまたはUnix形式で一度だけ召集するのが望ましいアプローチですが、一部の同僚は、エディターを動作させるための適切なソース管理について十分に気にしない場合があります。

そのような絶望的なケースでは、ファイルを完全に変換する(SCMに従ってファイルを自分で完全に書き換えて、「非難」機能を役に立たなくする)のではなく、問題が存在しないふりをする方が望ましいと思いました。コンパイラーが対応していて、PHP必ずis)の場合、次のコマンドを使用して、混合EOLファイルを完全にクールに見せることができます。

:match Invisible /\r$/

または、新しいバージョンのVIM 7.4+

:match Ignore /\r$/

さらに悪いことに、ほとんどのGUIエディターはしないでくださいテキストファイルを改行で終了し、ファイルが改行で終了すると、下部に空の行が表示されます。これはちょっと面倒なので、ほとんどの人はその空の行を削除します。ファイル形式がDOSの場合、混合EOLファイル(およびVimに表示される恐ろしい^ M)になります。

EclipseまたはNetBeansに空の最後の行を表示せずに改行の終了を尊重させる方法を知っている人がいる場合(Vimが巧妙に行うように)、お願い知識を共有してください。 ;-)

9
wiz

通常、ファイル形式は自動的に検出されます。ファイルにはUnixとDOS/Windowsの行が混在している必要があります。

これをクリーンアップしてみてください(「clean」= unix形式):

% tr -d '\015' < old.file > new.file
1
Roboprog

本格的なVIM(少なくとも私のubuntu 9.10ボックスでは)を使用している場合、それは「あなたが望むことを行い」、それを自動的に非表示にしますが、ストックvi (およびvim-tiny)^ Mを自動非表示にしないでください。最小限のインストール(またはサーバーインストール)を行うと、viとvim-tinyのみが表示されます。私が見つけた修正は、適切なvimをインストールすることでした(apt-get install vim )私のubuntuボックスで。私がしたのと同じ理由でこのトピックに沿って来る誰かを助けることを願っています:-D

0
Mark McCorkle
:0,$ s/<ctrl-v><ctrl-m>//g
:set ff=dos
0
John Millikin

次のコマンドを使用します。

:1,$ s/^v^M/ /g
0
Lonzo