Eclipse での改行コードの設定について教えて下さい


Eclipse でファイル編集を行うときの改行コードを LF で統一したいです。環境は Zend Studio 9.0.1 (Eclipse から派生している Zend Technologies Ltd. の製品)です。

既に次の設定を行なっています。

- General => Workspace => New text file line delimiter => Other (Unix)
- Project (右クリック) => Resource => New text file line delimiter => Other (Unix)

この設定が済んでいる状態で、既存のファイルからコピー & ペーストを行うと、ペーストされたテキストの改行コードが CRLF になります。コピー元のファイルの改行コードが LF であっても CRLF になってしまい、困っています。もし他に設定すべき項目があれば教えていただけると助かります。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/02/11 04:14:28
  • 終了:2012/02/18 04:15:02

回答(1件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492012/02/11 04:58:22

ポイント100pt

Zend Studioは使っていないので想像になりますが、
Windowsのクリップボードが勝手に置き換えてしまうのが原因だと思われます
(設定した2点は直接入力した場合には有効だけどペーストには効かない)

対処としては、
エディタ側のペースト部分を改造するという手もあるかもしれませんが、
編集中は気にせずに行って、
単純に File => Convert Line Delimiters To で一括変更が楽だと思います

id:mahata

ご回答どうもありがとうございます!

環境のところには Zend Studio とだけ書きましたが、OS は MacOS X を使用しています (それでもクリップボードが悪さをしている可能性は否定できないですけれど)。ファイル編集後の一手間を省きたいので、なるべくであれば「Convert Line Delimiters To」を使わないで済む方法を知りたいです。

2012/02/11 07:13:34
  • id:rouge_2008
    新規作成したファイルに貼り付けているでしょうか?
    新規作成時点での改行コードはLFになっていますか?
    Zend Studioでは確認できないので分かりませんが、Eclipseでは元ファイルの改行コードに関わらず、設定済みの改行コードにきちんと変換されます。
    (※既存のファイルに貼り付けた場合は、既存のファイルの改行コードに変換されます。)

    既存のファイルの改行コードがLF以外の場合は、目的のファイルが入っているフォルダを選択して、事前に改行コードを変換してから確認してみてください。
    ※画像などバイナリデータの入ったフォルダを変換対象にしないように注意してください。
    ※Eclipseの場合は、任意のフォルダを選択して、「行区切り文字の変換」(Convert Line Delimiters To)を実行すると、プロジェクトのツリーのダイアログが表示され、そのダイアログからさらに変換対象フォルダおよびファイルの追加・削除が可能でした。
  • id:mahata
    A9z5R93BntxPT3ZsnRYg 2012/02/14 02:43:52
    ご回答どうもありがとうございます!

    新規作成時点で LF のファイルであっても、こちらの環境(Zend Studio 9.0.1)ではペーストしたタイミングで改行コードが CRLF になってしまうみたいです。また、こちらの環境ではフォルダを右クリックして現れるメニューに「区切り文字を変更する」オプションは見当たりませんでした。

    もしかしたら Eclipse では再現しない Zend Studio 固有の問題なのかもしれないですね...。
  • id:rouge_2008
    > こちらの環境ではフォルダを右クリックして現れるメニューに「区切り文字を変更する」オプションは見当たりませんでした。

    右クリックではなく、「ファイル」メニューから実行します。


    > 新規作成時点で LF のファイルであっても、

    Zendにバグ報告して対処してもらってもいいと思いますが・・・
  • id:mahata
    A9z5R93BntxPT3ZsnRYg 2012/02/15 09:04:10
    どうもありがとうございます!

    「ファイル」メニューに確かに行区切り文字を変更するオプションがありましたが、それを LF に変更しても問題は解決しないようでした。

    もしかしたら解決しないかもしれないですが、この人力検索の終了期限が近いです。rouge_2008 さんにもはてなポイントを配布したいので、よろしければ(コメント欄ではなく)回答欄にも何か書いていただけないでしょうか? 適当な文字列でも結構です。
  • id:rouge_2008
    > LFに変更しても問題は解決しないようでした。

    CRからLF、あるいはCRLFからLFなど、ファイルの改行コード自体は変更されるけれど、再度別のファイルから貼り付けると改行コードがCRLFになるのでしょうか?
    バグと言っていい動作だと思いますので、やはり報告して修正してもらった方がいいと思います。
    (※プロジェクトの改行コード設定が機能していないのだと思います。プロジェクトの方を「Inherited from container」に変更しても機能しないのでしたら、ワークスペースの改行コード設定も機能していない可能性が出てきますが・・・)
    バグ報告前に念のため、再度目的のプロジェクトの改行コード設定を一度変更してから保存して確認してみてください。(※出来れば「Other:Unix」による直接指定と「Inherited from container」の両方の動作を確認した方がいいと思います。)

    windofjulyさんからも回答リクエストを頂いたのですが、特に何も思いつきませんので回答は遠慮させてください。
    解決に繋がる可能性の無い適当な事を書くのも後味が悪いので・・・
  • id:mahata
    A9z5R93BntxPT3ZsnRYg 2012/02/18 06:32:40
    ご回答どうもありがとうございます!

    プロジェクトメニューのコンテキストで「Inherited from container」と言った場合の container が何を指すのか分かっておらず、手探り感が拭えないのですが、プロジェクトの改行コードを「Other:Unix」から「Inherited from container」に変更し、かつファイルの改行コードを LF にした場合は改行コードが LF のペーストを行うことができました (コピー元のテキストも LF)。

    本当に解決しているのかしばらく使ってみないと何とも言えないのですが、アドバイスどうもありがとうございました。問題をまとめた上で Zend Technologies にもレポートを書いてみようと思います。
  • id:mahata
    A9z5R93BntxPT3ZsnRYg 2012/02/18 07:40:32
    すみません、上でぼくが書いた "プロジェクトの改行コードを「Other:Unix」から「Inherited from container」に変更し、かつファイルの改行コードを LF にした場合は改行コードが LF のペーストを行うことができました" は間違いのようです。こうしても LF の改行コードでペーストできないファイルがありました。

    上記の設定で改行コードが LF のペーストができるファイルもあるので、ファイルに紐づいた設定情報があるのかもしれないのですが、いまいち釈然としていません (うまく行くケースも行かないケースも、ファイルの「Convert Line Delimiters To」は Unix にしているので、それ以外の設定情報があるのかもしれないです)。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません