0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CRLFがまざっちゃった時あれこれ

Posted at

Winユーザがまざっちゃったのか
使ってたエディタがお茶目しちゃったのか。

なぜかCRLFが混ざってしまうことは、現場あるあるだと思います。

そんなときの対処法あれこれ。

まずは現状調査

###CRLFがあるファイルを探す

find . -type f | xargs ggrep -lzUP '\r\n'

ぼくのmacのgrepはzオプションなかったのでggrepを使っている。

###CotEditorで確認する
GUIエディタで、改行コードやエンコードが分かりやすいテキストエディタに
CotEditorがある。

ぼくのように改行コードでやらかす
ザコザコエンジニアはいれておいて損は無いです。

###一個一個Vimで開いて確認する場合

もちろんVimでも確認できます

開いたあと、
:se ff?でファイルフォーマット確認できる。

fileformat=unixかmacで、行末に^MがなければOK。
fileformat=dosってでたら、そのファイル、CRLFで改行してる。

LFに直す

###一個一個Vimで開いて直す場合

:e ++ff=unix
でUNIXモードで開き直す

:e ++ff=dos
でDOSモードで開き直す

UNIXモードで開くと見える^M(CRの意味)を以下のように
全部消してしまえばOK

:%s/\r//g

複数ファイルを一括で、CRLF→LFにしたい

例えばshファイルだけ変更したい時。

find . -name \*.sh -type f | xargs -n 10 nkf -Lu --overwrite

###nkfがなかったら
Macならbrewでインストールできる

brew install nkf

再発防止

すぐ気づくのが大事。
今回もコミットしちゃったからめんどくさくなったわけで。

チームの人にWinの人がいないなら、
改行はLF固定にした方が無難なはず。

vimrc
" 常にunixモードで開く
set fileformats=unix

こうしておけば、自分はCRLFで保存することはないし、
CRLFのファイルは^Mが表示されるので
すぐ気がつくことができる。

dosモードが必要なときは
他のエディタでやってもいいし、
開き直し(:e ++ff=dos)してから編集してもいい。

ついでにVimで改行を可視化しておく

vimrc
" 改行を可視化
set list                                                     
set listchars=eol:↲

最近のエディタならよくある
「CRLFならこの↲記号、LFならこの↓記号」
みたいな、表示方法ができないっぽい?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?