3

私はしばしばスクリプトファイルを編集する必要があります。インタプリタはファイルの最後の行にEOLマーカーがあるファイルをエラーとして扱います(つまり、ファイルはCRLFを「行末」ではなく「改行」として扱います)。

現在、これらのファイルをバイナリモード(コマンドラインで-b)を使用してVimで開きます。最終行にEOLがないことを自動検出し、「noeol」オプションを適切に設定して、最終行にEOLを書き込まないようにします。

ファイルにはCRLF行末があるため、行末に多くの^Msが表示されます(バイナリモードではUnixスタイルの行末のみを解釈するためです)。非バイナリファイルでは「noeol」オプションが無視されるため、テキストモードで開くことができません。

^Mこれは非常に煩わしいので、各行の最後に手動で入力することを常に忘れないでください。バイナリモードでDOSスタイルの行末を受け入れるように強制したり、テキストモードでEOLオプションをリッスンするように強制したりする方法はありますか?

4

2 に答える 2

0

^Mはい、すべての行に手動で入力する必要はありません。それは退屈でしょう!これを入力してみてください:

:set ff=dos

この記事も役立つかもしれません:dos-unixの行末形式を変更する

さらに検討すると、グローバルな検索と置換がおそらく必要になるので、これを試してみてください。(私は今日早くこれをテストしました、そしてそれはWindows XPでgvimで編集されているunixファイルで動作しました、そしてバイナリモードではありません。)

:%s/^M//g

^M特殊文字である、を除いて、示されているとおりにそのコマンドを入力します。それを作成する方法は、押しCtrlv一緒に押すことですEnter(Enterキーを押す前にCRTL + Vを放します)

于 2010-04-21T02:17:53.553 に答える
0

編集する前にdos2unixコマンドを実行できますか?

于 2010-04-20T21:16:20.463 に答える