サーチ…


備考

^M文字は、Vim( <cm>または単に<CR> )にキャリッジリターンを表します。ファイル内の少なくともオンラインの行がLF行の終わりを使用している場合、Vimはこの文字を表示します。言い換えれば、Vimがfileformat=unixを持つファイルを考えているが、一部の行にキャリッジリターン( CR )がある場合、キャリッジリターンは^Mとして表示されます。

LF行の終わりが1行で、 CRLF行の終わりが複数行あるファイルは、MSDOSベースのシステムで作成されたファイルを誤って編集することによって作成されることがよくあります。たとえば、MSDOSオペレーティングシステムの下にファイルを作成し、それをUNIXベースのシステムにコピーし、UNIXベースのオペレーティングシステム上のツールを使用してハッシュバングを付けます(例: #!/bin/sh )。

DOSテキストファイルをUNIXテキストファイルに変換する

非常に頻繁にDOSやWindowsで編集されたファイルを持っていて、それをUNIXで表示しています。 viを使用してファイルを表示すると、次のようになります。

First line of file^M
Next Line^M
And another^M

^ Mを削除したい場合は、各^ Mを手作業で削除することができます。あるいは、 Escキー押した後のviでは、コマンドモードプロンプトで次のように入力できます。

:1,$s/^M//g

^ Mは、 Ctrlvを一緒に入力し、次にCtrlm押しながら入力します。

これは最初の行 '1'から最後の行 '$'までコマンドを実行し、コマンドは '^ M'を何も ''と置き換え、これをグローバルに 'g'に置き換えます。

VImのファイル形式の使用

Vimが<CR><NL>行末(MSDOSベースのオペレーティングシステムで共通、 CRLFとも呼ばれる)のファイルを開くと、 fileformatdosに設定されます。

:set fileformat?
  fileformat=dos

あるいは単に

:set ff?
  fileformat=dos

これを<NL>行末(ほとんどのUNIXベースのオペレーティングシステムではLFとも呼ばれます)に変換するには、 fileformat設定を変更することができ、Vimはバッファを変更します。

:set ff=unix


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow