Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

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

$
0
0

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ならこの↓記号」
みたいな、表示方法ができないっぽい?


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>