デスクトップがクラッシュしたとき、EclipseワークスペースをLinuxからWindowsに移動する必要がありました。1週間後、私はそれをLinuxにコピーし、喜んでコード化し、CVSにコミットします。そして、悲しいかな、ウィンドウの改行は多くのファイルを汚染しているので、1行か2行変更した場合でも、CVS diffはファイル全体をダンプします。
スクリプトを作成することはできましたが、それがEclipseプロジェクトファイルを台無しにしてしまうのではないかと思っています。
デスクトップがクラッシュしたとき、EclipseワークスペースをLinuxからWindowsに移動する必要がありました。1週間後、私はそれをLinuxにコピーし、喜んでコード化し、CVSにコミットします。そして、悲しいかな、ウィンドウの改行は多くのファイルを汚染しているので、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
File : Convert Line Delimiters to : Unix
コマンドを使用して、プロジェクト内のすべてのファイルを一度に「修正」できます。
便利なbashユーティリティがあります。dos2unix
これはDOS / MACからUNIXへのテキストファイル形式コンバーターであり、ディストリビューションにまだインストールされていない場合は、パッケージマネージャーを介して簡単にインストールできます。 dos2unix manページ
Eclipseソリューションと別の回答で言及されているツールに加えて、フリップを検討してください。通常の改行とWindowsの改行との間でどちらの方法でも「フリップ」でき、ファイルのタイムスタンプやその他の統計情報を保持するなどの優れた機能を果たします。
このように使用して問題を解決できます。
find . -type f -not -path './.git/*' -exec flip -u {} \;
(gitを使用する場合に備えて、.gitディレクトリを無視するように句を追加しましたが、flipはデフォルトでバイナリファイルを無視するため、これは必要ない場合があります。)
find
はこの方法では機能しません。
あなたはそれを試してみることができます。問題は、Windowsが新しい行を指定すると、改行だけでなくキャリッジリターンも挿入することです。Unixシステムは改行を挿入するだけです。したがって、余分なキャリッジリターン文字が、Eclipseが改行を混乱させる理由である可能性があります。
プロジェクトから1つまたは2つのファイルを取得して変換します。Notepad ++を使用してこれを行うことができます。ファイルを開き、「フォーマット」->「Unixに変換」に移動します(Windowsを使用している場合)。
Linuxでは、コマンドラインでこれを試してください:
sed 's/$'"/`echo \\\r`/" yourfile.java > output.java
sed -i 's/$`echo \\\r`//' yourfile.java
自動化するためfind . -name "*.java" -exec sed -i 's/$`echo \\\r`//' {} \;