web-dev-qa-db-ja.com

EclipseおよびWindowsの改行

デスクトップがクラッシュしたときに、EclipseワークスペースをLinuxからWindowsに移動する必要がありました。 1週間後、私はそれをLinuxにコピーし、コードを喜んでコピーし、CVSにコミットします。そして悲しいことに、Windowsの改行は多くのファイルを汚染しているので、CVS diffは1行か2行を変更したとしてもファイル全体をダンプします!

スクリプトを作成できましたが、Eclipseプロジェクトファイルが台無しになるのではないかと思っています。

176
Vasu

前述のとおり、 here および here

ファイルエンコードをUTF-8に設定し、新しいファイルの行末をUnixに設定して、テキストファイルがWindows OSに固有ではない形式で保存され、異種開発者デスクトップ間で最も簡単に共有されるようにします。

  • ワークスペースの設定に移動します(一般:ワークスペース)
  • テキストファイルのエンコードをUTF-8に変更します
  • 新しいテキストファイルの行区切り文字をその他に変更し、選択リストからUnixを選択します

alt text

  • 注:既存のファイルの行末を変換するには、Eclipseでファイルを開き、File : Convert Line Delimiters to : Unixを選択します

Tip:パッケージエクスプローラーで選択し、メニューエントリFile : Convert Line Delimiters to : Unixに移動することで、既存のファイルを簡単に変換できます。

349
VonC

同じように、Eclipseは1行変更してもファイルを汚染していました。解決策:Eclipse git設定->エントリの追加:キー:core.autocrlf値:true

enter image description here

enter image description here

11
user988282

便利なbashユーティリティ-dos2unix-があります。これは、DOS/MACからUNIXへのテキストファイル形式コンバータで、ディストリビューションにまだインストールされていない場合は、パッケージマネージャから簡単にインストールできます。 dos2unix manページ

8
Ben Hayden

別の回答 で言及されているEclipseソリューションとツールに加えて、 flip を検討してください。通常の改行とWindowsの改行の間で「反転」できます。また、ファイルのタイムスタンプやその他の統計情報を保持するなどの素晴らしいことを行います。

次のように使用して問題を解決できます。

find . -type f -not -path './.git/*' -exec flip -u {} \;

(gitを使用する場合、.gitディレクトリを無視する句を入れますが、デフォルトではflipはバイナリファイルを無視するため、これは必要ないかもしれません。)

7
Michael Scheper

すべての子ディレクトリのCVS/*ファイルから復帰(\r)を再帰的に削除するには、Unixシェルで次を実行します。

find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;
3
Gabe

試してみてください。問題は、新しい行が指定されたときに、Windowsが改行と改行を挿入することです。 Unixシステムは、ラインフィードを挿入するだけです。したがって、余分なキャリッジリターン文字が、Eclipseが改行を台無しにする理由になる可能性があります。

プロジェクトから1つまたは2つのファイルを取得して変換します。これを行うには、Notepad ++を使用できます。ファイルを開くだけで、Format-> Convert to Unix(windowsを使用している場合)に移動します。

Linuxでは、コマンドラインでこれを試してください:

sed 's/$'"/`echo \\\r`/" yourfile.Java > output.Java
3
Ham Vocke