今回のエントリは、MacOS環境で試してますので、Linux環境だと挙動が違うところがある可能性があります
vim
でファイル触っているということは大概の場合において、行末尾の改行コードが LF なわけですけど。
WIndowsで作成したテキストファイルを作成すると 改行コードは CR+LF です。
場合によって、改行コードの LF と CR+LF が混在したファイルができていたりします。
vim
で対象ファイルの改行コードを可視化する場合、以下を実行します
:set list
改行コードがLFの場合は、以下のように表示されます。($
が LF を意味しています)
aaaaaaa$ bbbbbbb$ ccccccc$ aaaaaaa$ aaaaaa$ 1234567$ 8901111$
行末尾が CR+LF だと以下のように表示されます。(^M
がCR, $
が LF, を意味しています)
aaaaaaa^M$ bbbbbbb^M$ ccccccc^M$ aaaaaaa^M$ aaaaaa^M$ 1234567^M$ 8901111^M$
改行コードに LF と CR+LF が混在していると以下のように表示されます。
aaaaaaa^M$ bbbbbbb^M$ ccccccc^M$ aaaaaaa^M$ aaaaaa^M$ 1234567^M$ 8901111^M$ ^M$ ^M$ abcdefg$ hijklmn$ opqr$
そもそも CR+LF のファイルであれば ^M
は最初から表示されているはずです。
もし表示されていないようであれば以下を実行します
:edit ++ff=unix
ちなみに、file
コマンドで改行コードが CR+LF のファイルを確認すると以下のようになります。
$ file sample.txt sample.txt: ASCII text, with CRLF line terminators
file
コマンドで改行コードに LF と CR+LF が混在しているファイルを確認すると以下のようになります。
$ file sample3.txt sample3.txt: ASCII text, with CRLF, LF line terminators
というわけで、改行コードを可視化できたのでこれで良しです。
(普通は改行コードを変換するところまで書くのがワンセットな気がしますが笑)