今日のvim(20150518):改行を一発で削除

今までのおさらいと目次とテーマ

http://snoopopo.hatenablog.com/entry/2015/04/14/113800

http://snoopopo.hatenablog.com/entry/2015/02/16/105930

今日のテーマ:改行を一発で削除

以前やった、CRである^M を消す、という意味ではなく、*1

今回は、改行コードを、空文字で置き換えて、いっきに改行がない状態にできないかということを見ていきます.

line1
line2
line3

これ↑がこう↓なってほしい。

line1line2line3

結果的にいうと、以下でいきます。

:%s/\n//g

↑のはもちろん、ファイル全体の改行を置換した場合です。

この改行問題の話ではOSによる改行コードの違いがあると思います。

なんと便利なことに、CRLFの改行も削除してくれるようです。

ここで試したことは、

ff=unixの状態で、LFを削除してくれること

ff=dosの状態で、LF,CRLFを削除してくれること

です。

ff=unixの状態でCRがあるときは前述のとおり^Mが表示されてしまい、 その状態で上記のコマンドをすると、

line1^Mline2^Mline3^M

となります。なので、この場合は、不要な^M つまり、CRは消さないとだめなので、

:%s/^M//g をやってから、:s%s/\r//g をすることになると思います。順番関係ないけど。。