26

組み込みのJavaコンテンツアシストプロポーザルをインデントするためにスペースの代わりにタブを使用するようにEclipseを説得する方法はありますか(親クラスのメソッドをオーバーライドする空のメソッドを作成する場合など)?

関連性があると思われる唯一の設定は、Windows/設定/一般/エディター/テキストエディター/タブのスペースの挿入であり、この設定はオフになっています。

(編集:いくつかのポスターは、「タブのみ」に設定されているJava /コードスタイル/フォーマッター/インデント/タブポリシーを指摘しています)

現時点では、それらを選択して、で再フォーマットすることを忘れないで<Ctrl>+<Shift>+<F>ください。

4

9 に答える 9

26

上記のSimonNickersonのコメントのおかげで、解決策を見つけました。これは、元のポスターが彼の編集で参照していたものです。設定を見つけた後、私は彼らが何について話しているのかを見る。しかし、それへの道は道のりの最初から数歩与えられていたので、私のようにEclipseに不慣れな人や、Eclipseから数年離れている人には明確な答えを与えることができません。だから私はここでフルパスを与えます:

  1. [プロジェクト]->[プロパティ]に移動します。
  2. 表示されたボックスで、[Javaコードスタイル]->[フォーマッター]に移動します。
  3. ボックスの右上にある[ワークスペース設定の構成]リンクをクリックします。
  4. 名前の横にある[編集]ボタンをクリックします。
  5. 「タブポリシー:」ドロップダウンボックスを「スペースのみ」に変更します。これは、タブが悪であり、必然的にコードのフォーマットが不適切になるためです。> :-(これは、ファイルのインデントサイズとタブサイズに実際に影響を与える可能性がある場所でもあります。
  6. 変更を保存するには、ボックスの上部にある[プロファイル名]を変更する必要があります。
  7. ありがたいことに、「OK」を押すと、Eclipseは現在のプロジェクトにプロファイルを使用するので、このステップの後で完了です。

さて、本当に壊れているのは、これらの設定が、「Windows/設定/一般/エディター/テキストエディター/タブのスペースの挿入」で同様のサウンドの設定を変更するためのより高度なインターフェイスをオーバーライドするという事実です。エディターに比較的慣れていない人にとっては、これはデフォルトのタブ=スペース設定を設定する場所のように思えます。本当の答えを見つけた後、これは一般的なテキスト編集のためだけのものであり、言語固有の設定を手元の言語のプロファイルで設定する必要があることは明らかです。ただし、これは初心者にとっては少し明確にする必要があります。;-)

于 2011-10-13T03:18:16.773 に答える
9

これは現在バグのようです(3.5トレインでは修正されていません):

バグ44755(コメント用ですが、他のリファクタリングJDT操作にも有効です)

ASTリライトのバグを含むバグ231832にもリンクされています...

これはASTRewriteのクライアントではなく、の問題だと思いますASTRewrite。書き換え部分でコードフォーマッター設定が使用可能であることを確認する必要があります。調査のために
移動します。JDT/Core

3.4後半で検出されましたが、3.5ではまだ修正されていません

于 2010-04-14T10:43:00.167 に答える
3

Java /コードスタイル/フォーマッタの
設定を確認してください独自のプロファイルを作成し、「インデント」/「タブポリシー」を「タブのみ」に設定します

于 2010-04-14T10:33:54.067 に答える
2

[設定]>[Java]>[コードスタイル]>[フォーマッター]>[編集]>[インデント]>[先頭のインデントにのみタブを使用する]チェックボックス

于 2010-04-14T10:34:05.597 に答える
2

私が設定する方法は、[エディター]->[アクションの保存]設定で[ソースコードのフォーマット]を有効にすることです。

そうすれば、保存時にソースコードを再フォーマットします。

于 2010-04-14T10:35:33.883 に答える
2

[編集]>[スマート挿入モード]がチェックされていないことを確認しました。これは、インデントとフォーマットの設定が機能しない場合に役立つようです。Eclipse3.7.0の実行。

于 2011-08-24T22:02:45.173 に答える
1

私もこの問題を抱えていました。問題は、私のワークスペースのどこかに埋め込まれている構成であることが判明しました。新しいワークスペースを作成してプロジェクトを再インポートしましたが、タブがスペースに変換されなくなりました。

于 2010-09-01T14:48:11.590 に答える
1

テキストエディタの設定で[タブにスペースを挿入]オプションを設定し、フォーマッタプロファイルのタブポリシーを[スペース]に設定した後でも、Eclipseのみがタブ文字を挿入していました。ファイルからすべてのタブを削除した後でのみ、タブ用のスペースが適切に挿入されました。これを発見した後、テキストエディタの環境設定の[タブにスペースを挿入]オプションは効果がないようで、目的の結果を達成するのはフォーマッタプロファイルのタブポリシーへの変更であると判断しました。

于 2011-12-11T00:41:35.830 に答える
0

他のソリューションが機能しなかった場合でも「私のために機能した」さらに別のソリューション(バージョン:3.8.1):

プリファレンス>Java>コードスタイル>フォーマッタ>編集>インデント>スペースを使用して折り返し行をインデントする-オフに設定

これは本質的に「スマートタブ」オプションです。フォーマッタでは機能しますが、コード生成がスペースのみを使用するように誤って設定されます。厄介なことに、このソリューションはフォーマッターを壊します。

于 2015-03-16T19:22:10.540 に答える