LinuxのVi:DOS形式のファイルの^ M行末を表示


10

Solarisでは、Windowsの行末を持つファイルをviで開くと、すべての行の終わりに^ Mと表示されます。

Linuxでは、viは賢く、Windowsファイル形式を理解し、^ Mを表示しません。

この点でLinux viをSolarisと同じように動作させる設定はありますか?

私たちの一般的な問題は、(Windows)開発ボックスからシェルスクリプトをコピーしてdos2unixを忘れ、それが正しく動作しないときに混乱することです。Solarisでは、ファイルをviにするとすぐに問題が明らかになりますが、Linuxでは問題はありません。

ありがとう。


Linuxでは、viは通常Bram Moolenaarのvimです。Solarisでのviは、Bill Joy viであり、オリジナルでありながら本物ですが、能力は低いと思います。
RedGrittyBrick 2011年

私のvim場合、デフォルトでは通常は何^Mも表示されませんが、ファイルの最後に1つある場合があります。
トリシス

回答:


10

:set ffs=unixすべてのCR文字をとして表示するviを開始する(またはvimrcでデフォルトとして設定する)ときに試してください^M

viは、LFだけで終わる行、またはCR / LFの両方で終わる行に遭遇するかどうかに基づいて、使用する形式を自動推定します。


2
@RedGrittyBrick-私のシステムで:set list$、すべての行の終わりに表示されます(UnixおよびDOS形式)ので、2つを区別するのに役立ちません。
sss

@sss:私の間違い、コメントを削除します。
RedGrittyBrick 2011年

2
@gman-このコマンドは私には正確に機能しませんでした-わかりましたNot an editor command: ffs=unix-しかし、正しいパスに設定しました。:set ffs=unixviでファイルを開いたまま実行しても機能しませんでした。エラーは発生しませんでしたが、何も起こりませんでした。私set ffs=unixは自分の.vimrcファイルに入れ、それはうまくいきました。
sss

私は@sssとまったく同じことを経験しました
SSHこの

したがって、慎重に準備されたユーザー構成が破損します。私はおそらくffsそれがそうであるように正確に望んでいます。しかし、@ wisbuckyからの回答を参照してください。
fork0 2018

2

現在のファイルのdos行末を表示するには:

:e +ff=unix

これにより、ファイル形式がunixに強制され、次のようにレンダリングさCRれます^M


この設定を永続的にするには、以下を追加し~/.vimrcます:

set ffs=unix

.vimrc設定はでありffs、ではないことに注意してくださいff


これはあるはずだと:e ++ff=unix思います。
fork0 2018

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