Eclipseで末尾の空白を自動削除する方法は?


422

質問には2つの部分があり、そのうちの1つはすでに回答があります。

  1. 編集中のファイル全体から末尾の空白を自動削除する方法は?->回答:AnyEditプラグインを使用します。これは、ファイルに保存するときに設定できます。
  2. 末尾の空白を自動削除する方法 変更した行からのみですか?->これはわからないので、何か助けていただければ幸いです。

97
入力しなかった末尾の空白を追加しないようにEclipseを説得できたら幸いです。
divegeek

5
プラグインは必要ありません。C ++-> Editor-> Save Actionsを使用するだけです。また、一般->エディタ->テキストエディタ->空白文字を表示(詳細設定はクリック)が非常に便利です。
Trass3r

3
デフォルトの保存アクションでは、Java Docコメントの末尾の空白は削除されません。また、Javaファイルでのみ機能するという制限もあります。末尾の空白をすべてエラーとしてマークするコードレビューシステムがあります。AnyEditは、すべてのファイルタイプの末尾の空白を処理するために非常に重要です。また、サードパーティのソフトウェアに対して会社がどのような制限を設けているかを見つけることも役立ちます。AnyEditプラグインにはEPLライセンス(opensource.org/licenses/eclipse-1.0.php)があります[ここから:andrei.gmxhome.de/anyedit/index.html]
Ashutosh Jindal

1
あなたの質問を見て、AnyEditPluginが原因であることが判明するまで、行末の空白が突然削除される理由を理解できませんでした。ありがとう!
Tzafrir 2016年

回答:


142
  1. 編集中のファイル全体から空白削除:

Preferences- > Java- > Editors- > Save Actions- >チェックPerform the selected actions on save- >チェックAdditional actions- >をクリックしますConfigure..- >に行きCode organizingタブ- > [チェックRemove trailing whitespace- >を選択All lines

  1. 変更した行からのみ空白を削除する:

Preferences-> Java-> Editor-> Save Actions-> check " Perform the selected actions on save-> check- Format source code> select Format edited lines

クリックする必要がないことに注意してください。Configure the formatter settings on the Formatter pageすべてのコードスタイルには、末尾の空白の削除が自動的に含まれています。少なくとも私はFormatterの設定でこの設定を見つけることができず、組み込みのJava Conventions、Eclipse、Eclipse 2.1スタイル、およびGoogleStyleの設定をそのまま使用できました。

この設定を使用する場合は、質問のパート1のソリューションもオフにする必要があることは明らかです。

Eclipse version checked: 4.5.2, 4.11

形式を定義するにはどうすればよいですか?FormatterリンクまたはConfigureボタンを使用しますか?
Vijay Kotari、2011

このオプションは、PDT for PHPの[アクションの保存]にも表示されます。
thaddeusmt 2011

1
@VijayKotari Answerが編集されました-フォーマットを定義する必要はありません。
JanŻankowski16年

350

あなたの質問はJavaコードに関するものだと思います。その場合、実際に1)を実行するために追加のプラグインは必要ありません。あなただけに行くことができます> Javaの- - >エディタ-環境設定>保存アクションとし、それを構成する末尾の空白を削除します

そのサウンドによって、これをチーム全体の設定にしたいと思いませんか?新しいワークスペースを作成するたびに設定を覚えておかなくても済むように、コードとともにSCMに保存されるプロジェクト固有の設定として保存アクションを設定できます。

そのためには、プロジェクトを右クリックし、[ プロパティ]-> [Javaエディター]-> [アクションの保存 ]に移動します。そこから、プロジェクト固有の設定を有効にして、(他の便利なものの中でも)末尾の空白を削除するように構成できます。

:このオプションは、Eclipse Kepler(4.3)以降のリリースで削除されました。

注意2:オプションはEclipse Lunaに戻っているようです-Luna Service Release 1a (4.4.1)


2
おかげで、gcastro-AnyEditよりも簡単です。残念ながら、これはファイル全体を編集するためのものです。変更した行に対してのみ、どうすればよいのかまだわからないので、おそらく今は不可能のようです。
JanŻankowski、2009

7
Javaに適しています。C / C ++にも適しています。PyDevのPythonは対象外です。
クレイグマックイーン

14
PyDevのPythonでは、この機能のリクエストを行いました。参照:sourceforge.net/tracker/…–
Craig McQueen、

5
参考までに... PHPでも同じ概念。設定-> PHP->エディター->保存アクション。
seanmrafferty

1
これが機能するかどうかはわかりませんが、Eclipseの最新バージョン(Kepler)では確実に機能しないようです。フォーマッターは編集された行でのみ実行できますが、空白のトリミングはすべての行に制限されているか、空の行を無視しています-本当に面倒です。
Thor84no 14

73

そのためにプラグインは必要ありません。たとえば、JAVAをコーディングすると、保存アクションを構成する末尾の空白を消去できます。

Eclipse 3.6

Preferences-> Java-> Editors-> Save Actions->チェックPerform the selected actions on save->チェックAdditional actions->ボタンをクリックしConfigure..ます。

ではCode organizing、タブ、チェックRemove trailing whitespace


4
これは、「追加のアクション」で「末尾の空白を削除する」を探すことを特にアドバイスする最初の回答です。ありがとう。
DavidRR 2012

7
これは.javaファイルに対してのみ機能します。私は通常、数十の
拡張機能

Works for Eclipse 4.12
Matilda Smeds

46

PyDevはは、いずれかの方法でそれを行うことができますCtrl+ Shift+ Fあなたがそれを行うには、オプションセットフォーマッタコードがある場合、またはによってduring saving

Eclipse-> Window-> Preferences-> PyDev-> Editor-> Code Style-> Code Formatter

私は少なくともこれらを使用します:

  • 保存する前に自動フォーマット
  • 右のトリムライン?
  • ファイルの最後に新しい行を追加する

5
これは、スペースをストリッピングの問題カバーしていないだけで編集した行からを。また、すべてのコードフォーマッタオプションを実行し、チェックされていないオプションは「無視/使用しない」とは異なるため、これも危険な機能です。例:[カンマの後にスペースを使用する]がオフの場合、コードフォーマッタはオプションを無視する代わりにそれらのスペースを削除します。
JCotton 2011

7
PyDevコードフォーマッタに新しいオプションがあります。保存時に、変更された行にのみ書式を適用します。
warvariuc 2012年

2
-1は、あまりに一般的な回答を示した場合の質問です。質問は、空白についてだけでした。自動コードフォーマットを有効にすると、ソースコミットに予定外のものが含まれ始め、コミットタイトルに関係のないものがコミットに含まれるため、履歴が乱雑になります。
エリックカプルン


19

Eclipseでキーをマップして、ファイル全体の末尾の空白を手動で削除できますが、保存時に自動的にではなく、要求に応じてのみ削除できます。(設定/キー、次に一連のキーをファイル/末尾の空白を削除にマップ)これは、すべての新しいファイルをサニタイズしたいが、レガシーコードは変更しない場合に役立ちます。

もう1つの戦略は、空白の視覚表示をアクティブにすることです。そのため、少なくとも末尾の空白を追加するときにわかります。私の知る限りでは、末尾の空白だけを表示する方法はありませんが、間違っていることが証明されてうれしいです。


この回答をありがとうございました!これまでのところ、Aptanaプラグイン用に見つけた唯一の方法です。
Igor Zinov'yev

11

簡単に言えば、末尾の空白の削除をまったくサポートしていないエディター(XMLエディターなど)の場合、検索と置換を行い、正規表現を有効にしてから[[\ t]を見つけることで、すべての行から空白を削除できます。 + $ "と" "(空白)に置き換えます。それを行うにはより良い正規表現がおそらくありますが、AnyEditをインストールする必要なく、私にとってはうまくいきます。


9

私もAnyEditと言います。この特定の機能は提供されません。ただし、あなたとあなたのチームが各保存アクションでAnyEdit機能を使用する場合、ファイルを開くときに、末尾に空白があってはなりません。

したがって、このファイルを変更し、新しい末尾のスペースを追加すると、保存操作中に、AnyEditはこれらの新しいスペースのみを削除します。これらは、このファイルの唯一の末尾のスペースであるためです。

何らかの理由で、自分が変更していない行の末尾のスペースを維持する必要がある場合、私には答えがありません。この種の機能がEclipseプラグインに存在するかどうかはわかりません...


4
はい、私は変更されていない行のスペースを保持したいのです。これはIntellij Ideaのデフォルトの動作です(行のスペースを削除し、他の行に保持します)。それをEclipseで取得します。答えてくれてありがとう。
JanŻankowski2009年



4

Unixコマンドラインツールであるsedを使用してこれを行う簡単な方法があります。おそらくこれを実行するためにEclipseでマクロを作成できます。

sed -i 's/[[:space:]]*$//' <filename>

4

@Malvineousが言ったように、専門的ではありませんが、Find / Replaceメソッドを使用して末尾のスペース(タブU + 0009および空白U + 0020を含む)を削除することによる回避策です。
Ctrl + F(またはコマンド+ F)を押すだけ

  1. 探す [\t ][\t ]*$
  2. と置換する空の文字列にます
  3. 正規表現を使用する
  4. すべて置換

余分:
先行スペースを削除するには、^[\t ][\t ]*代わりに[\t ][\t ]*$
検索します。空白行を削除するには、検索します^\s*$\r?\n


1
どの程度[\t ]+$の代わりに[\t ][\t ]*$
ジョナグラハム

1

私はあなたの質問の後半の解決策を知りません。その理由は、私が変更したものをどのように定義するかが明確でないためです。いつ変わったの?ちょうど2つの保存の間またはコミットの間...基本的に-忘れてください。

ガイドラインに固執したいと思いますが、コードの残りの部分には触れないでください。ただし、このガイドラインは全体に使用する必要があります。だから私の提案は-すべてのコードをガイドラインに変更します:これは一度限りの操作ですが、すべての開発者がプロ​​ジェクトの同じ設定で同じプラグイン(AnyEdit)を持っていることを確認してください。


7
これは保存アクションなので、保存と保存の間に変更される行になります。Eclipseはすでに、サイドバーでマークするためにこれらの行を追跡しています。
starblue

0

私はこのコマンドをgitに使用しました: git config --global core.whitespace cr-at-eol

^M末尾の文字を削除します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.