Eclipse と Windows の改行
質問
デスクトップがクラッシュしたため、Eclipse ワークスペースを Linux から Windows に移動する必要がありました。1 週間後、それを Linux にコピーして戻し、楽しくコードを書き、CVS にコミットしました。そして悲しいことに、Windows の改行は多くのファイルを汚染しているため、1 ~ 2 行変更した場合でも、CVS diff はファイル全体をダンプします。
スクリプトを作成することもできますが、それによって Eclipse プロジェクト ファイルが台無しになるのではないかと考えています。
解決
ファイルエンコーディングを次のように設定します
UTF-8
新しいファイルの行末を Unix に変換することで、テキスト ファイルが Windows OS に固有ではない形式で保存され、異種開発者のデスクトップ間で最も簡単に共有できるようになります。
- ワークスペース設定に移動します (一般:ワークスペース)
- テキスト ファイルのエンコーディングを次のように変更します。
UTF-8
- [新しいテキスト ファイルの行区切り文字] を [その他] に変更し、選択リストから [Unix] を選択します。
- 注記:既存のファイルの行末を変換するには、Eclipse でファイルを開いて、
File : Convert Line Delimiters to : Unix
ヒント:パッケージ エクスプローラーで を選択し、メニュー エントリに移動することで、既存のファイルを簡単に変換できます。 File : Convert Line Delimiters to : Unix
他のヒント
便利なbashのユーティリティがあります - dos2unix
- すでにあなたのディストリビューションにインストールされていない場合は、簡単にパッケージマネージャを介してインストールすることができなければならないことを、DOS / MAC UNIXのテキストファイル形式コンバータです。 DOS2UNIXマニュアルページ
あなたはそれを試してみることができます。問題は、新しい行が与えられたときにWindowsがキャリッジリターンと同様に改行を挿入することです。 Unix系システムだけ改行を挿入します。だから、余分な改行文字は、あなたの日食は、改行を台無しにする理由である可能性があります。
プロジェクトから1つのまたは2つのファイルをつかみ、それらを変換します。あなたはこれを行うには、メモ帳++を使用することができます。ただ、ファイルを開くFormat-に行く> Unixの(Windowsを使用している)に変換します。
Linuxの場合だけで、コマンドラインでこれを試してください:
sed 's/$'"/`echo \\\r`/" yourfile.java > output.java
再帰的に、すべての子ディレクトリ内のCVS / *ファイルからキャリッジリターン(\r
)を削除するには、UNIXシェルで次のコマンドを実行します:
find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;