この質問には 2 つの部分があり、そのうちの 1 つは既に答えを持っています。
- 編集中のファイル全体から末尾の空白を自動削除する方法は? -> 回答: AnyEdit プラグインを使用します。これは、ファイルへの保存時にそれを行うように設定できます。
- 変更した行からのみ末尾の空白を自動削除する方法は? ->これは私にはわかりません。助けていただければ幸いです。
この質問には 2 つの部分があり、そのうちの 1 つは既に答えを持っています。
あなたの質問はJavaコードに関するものだと思います。その場合、1) を達成するために追加のプラグインは実際には必要ありません。Preferences -> Java -> Editor -> Save Actionsに移動して、末尾の空白を削除するように構成できます。
なるほど、これもチーム全体の設定にしたいんですね。作業を楽にし、新しいワークスペースを作成するたびに設定を覚える必要がないようにするために、コードと共に SCM に保存されるプロジェクト固有の設定として保存アクションを設定できます。
これを行うには、プロジェクトを右クリックして、Properties -> Java Editor -> Save Actionsに移動します。そこから、プロジェクト固有の設定を有効にして、末尾の空白を削除するように構成できます (他の便利なものの中でも特に)。
注意: このオプションは、Eclipse Kepler (4.3) 以降のリリースでは削除されています。
NB #2:このオプションは Eclipse Luna に戻ってきたようです -Luna Service Release 1a (4.4.1)
Preferences-> Java-> Editors-> Save Actions-> チェックPerform the selected actions on save-> チェックAdditional actions-> クリックConfigure..->Code organizingタブに移動 -> チェックRemove trailing whitespace-> 選択All lines.
Preferences-> Java-> Editor-> Save Actions-> チェック " Perform the selected actions on save-> チェックFormat source code-> を選択しますFormat edited lines。
クリックする必要はありませんConfigure the formatter settings on the Formatter page。すべてのコード スタイルには、末尾の空白の削除が自動的に含まれます。少なくとも、フォーマッター構成でこれの設定を見つけることができませんでした。組み込みの Java 規則、Eclipse、Eclipse 2.1 スタイル、およびGoogleStyleでそのまま使用できました。
この設定を使用する場合、明らかに、質問のパート 1 のソリューションもオフにする必要があります。
Eclipse version checked: 4.5.2, 4.11
そのためにプラグインは必要ありません。たとえば、JAVAをコーディングすると、保存アクションを構成する末尾の空白を消去できます。
Eclipse 3.6
Preferences-> Java-> Editors-> Save Actions->チェックPerform the selected actions on save->チェックAdditional actions->ボタンをクリックしConfigure..ます。
Code organizingタブで、チェックしますRemove trailing whitespace
PyDevは、コード フォーマッタ オプションが設定されている場合はCtrl+ Shift+または次のいずれかで実行できます。Fduring saving
Eclipse-> Window-> Preferences-> PyDev-> Editor-> Code Style-> Code Formatter:
私は少なくともこれらを使用します:
以下を実行します。
Preferences-> Java-> Editor->Save Actions
Eclipse でキーをマップして、ファイル全体の末尾の空白を手動で削除できますが、保存時に自動的にではなく、要求に応じてのみ削除できます。(Preference/Keys を選択してから、一連のキーを File/Remove Trailing Whitespace にマップします) これは、すべての新しいファイルをサニタイズしたいが、レガシー コードはそのままにしておく場合に便利です。
もう 1 つの戦略は、空白の視覚的表示を有効にすることです。これにより、少なくとも、末尾に空白を追加していることがわかります。私の知る限り、末尾の空白のみを表示する方法はありませんが、間違っていることが証明されてうれしいです。
ピンチでは、末尾の空白の削除をまったくサポートしていないエディター(XMLエディターなど)の場合、検索と置換を実行し、正規表現を有効にしてから「[\ t]」を検索することで、すべての行から空白を削除できます。 + $"とそれを""(空白)に置き換えます。これを行うにはおそらくより良い正規表現がありますが、AnyEditをインストールしなくても機能します。
AnyEdit とも言えます。この特定の機能は提供しません。ただし、あなたとあなたのチームが各保存アクションで AnyEdit 機能を使用する場合、ファイルを開くときに、末尾に空白があってはなりません。
したがって、このファイルを変更し、新しい末尾のスペースを追加すると、保存操作中に AnyEdit はこれらの新しいスペースのみを削除します。これは、このファイルの唯一の末尾のスペースであるためです。
何らかの理由で、変更されていない行の末尾のスペースを保持する必要がある場合、私には答えがありません。この種の機能がEclipseプラグインに存在するかどうかはわかりません...
現在、Eclipse で一般的な方法でこれを行うことは不可能ですが、基本的な Java の知識と、このhttps://bugs.eclipse.org/bugs/show_bug.cgi? id=180349
依存する問題: https://bugs.eclipse.org/bugs/show_bug.cgi?id=311173
@Malvineousが言ったように、専門的ではありませんが、検索/置換メソッドを使用して末尾のスペースを削除することは回避策です(以下ではタブU + 0009と空白U + 0020を含みます)。
Ctrl + F (またはコマンド + F) を押すだけです。
[\t ][\t ]*$
extra:
先頭のスペースを削除するには、find^[\t ][\t ]*
の代わりに[\t ][\t ]*$
空行を削除するには、find^\s*$\r?\n
あなたの質問の2番目の部分の解決策はわかりません。その理由は、I changedの定義方法が明確でないためです。いつ変わった?2回の保存の間またはコミットの間だけ...基本的に-忘れてください。
いくつかのガイドラインに固執したいと思いますが、コードの残りの部分には触れないでください。ただし、このガイドラインは、一口一口ではなく、全体的に使用する必要があります。したがって、私の提案は、すべてのコードをガイドラインに変更することです。これは 1 回限りの操作ですが、すべての開発者がプロジェクトに対して同じ設定の同じプラグイン (AnyEdit) を持っていることを確認してください。