Xcodeで末尾のスペースを削除する


回答:


22

スクリプトを作成して、キーボードショートカットにバインドできます。

  • [ スクリプト]メニュー> [ユーザースクリプトの編集...]を選択します。
  • +ボタンを押し、[ 新しいシェルスクリプト ]を選択します
  • 「Strip Trailing Spaces」のような名前を付け、⌃⇧Rのようなショートカットを付けます。
  • 入力を「選択」に、出力を「選択を置換」に設定します

次に、次のスクリプトを入力します。

#!/usr/bin/perl

while (<>) {
    s/\s+$//;
    print "$_\n";
}

9
ああ、はい、とてもシンプルです...ありがとう。これをファイルの保存に関連付ける方法はありますか?
Alexander Gladysh

ファイル全体を操作するには(おそらく、これが目的の操作です)、[入力]を[ドキュメント全体]に設定し、[出力]を[ドキュメントの内容を置き換える]に設定します。ただし、これにより、カーソルがファイルの下部に残ります。
SMBiggs 2012

7
この回答はXcode 4.4で廃止されました。Martin Stolzの回答をご覧ください。
バジルブルク

239

Xcode 4.4以降、行がすべて空白でない限り、空白はデフォルトで自動的に削除されます。Including whitespace-only linesこれをアクティブにしてこれを修正することもできます。デフォルトではアクティブではありません。

に行く Xcode > Preferences > Text Editing > While editing

Xcode設定のスクリーンショット


15
この設定は、カーソルが行を離れた後にのみ行の末尾の空白を削除します。そのため、保存時にカーソルがその行にある場合、末尾の空白が1行のファイルを保存できます。
ma11hew28 2013

7
なぜこれがデフォルトではないのですか?末尾に空白がある既存のファイルがある場合は、すべてにマークを付け、切り取り、保存、貼り付け、保存します。
friederbluemle 2014

これは、この回答のハッキースクリプトソリューションをオーバーライドする必要があります。
ウルダ2015年

7
ctrl-i既存のすべてのファイルでこれを使用すると、末尾の空白が処理されます
Kirualex

24

Mac ToolboxGoogle Toolboxプラグインを使用していますが、保存時に末尾の空白を削除する「保存時に正しい空白」パラメーターが追加されます。私はemacsからそれをたくさん逃しました。


1
このプラグインも使用しています。それはそれが言うことを行います。
ネイサン

申し訳ありませんが、現時点ではXcode 4では機能しません。完璧です。(
deepwell

6
これで、いくつかの基本的なXcode 4サポートがあります。私たちの新しいプラグインを
dmaclach

1
「保存時に正しい空白」パラメータはどこにありますか?
jhasse 2012

ようやくGTMをXcode 4.3.2で動作させることができましたが、GTM wikiからのインストール手順は無効のようです。~/Library/Application Support/Developer/Shared/Xcode/Plug-ins(Googleの指示に従って).xcpluginを配置する代わりに、それを配置して/Applications/Xcode.app/Contents/PlugInsXcodeを再起動する必要がありました。
Kristofer Sommestad 2012年

3

Xcode 8では、スイムをインストールしました Xcodeプラグイン Swiftコードをフォーマットし、末尾のスペースと空白のみの行をすべて削除しました。

インストール方法

  1. homebrew-cask経由でインストール:

    brew cask install swimat
  2. アプリを直接ダウンロード:https :
    //github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. extensionブランチをクローンし、Mac Appにアーカイブします。

使用法

インストールしたら、Xcodeでを介してSwimatを実行できますEditor -> Swimat -> Format


このツールは空白行を削除しません。
Mehdico

1

これはXcode 3.2では不可能です

編集:

これを適切に行う方法がないため、私はこの質問にとても簡単に答えました

もちろん、それはソフトウェアなので、何でもできます。InputManagerのハックや、システム全体のキーボードインターセプトへのコードインジェクションの他の方法から始めて、ローカルシステムを変更していつでも何でもできるようにすることができます。Applescriptフォルダーアクション(arrgh)を設定するか、起動デーモンとFSEvents機能を使用してソースコードファイルを監視できます。

Xcodeにいくつかのスクリプトを追加することもできます(メニューのユーザースクリプト、ターゲットのスクリプトフェーズ、オーガナイザーのカスタムアクション、起動スクリプトは非常に不明な可能性さえあります)。ただし、これらのソリューションにはすべてユーザーまたはユーザーのマシン上のカスタムセットアップ。

SCMからプロジェクトをチェックアウトした後に単純に機能するソリューションを知りません。これと同様のカスタマイズスクリプトの必要性があると思うので、バグを報告しました(レーダー7203835、「機能:Xcodeワークフローでのより多くのユーザースクリプトトリガー」)。まだフィードバックはありません。

レーダーエントリの全文は次のとおりです。

Xcodeでスクリプトを実行する場所を増やすと便利です。

例:

  1. 事前構築スクリプト
    事前構築スクリプトを使用して、*。xcconfigファイルやconfig.hヘッダーなどの前提条件を構築できます。ビルドフェーズがトリガーされる前に依存関係の追跡が行われるため、「スクリプトのビルドフェーズの実行」ではこれは不可能です。

  2. ビルド後のスクリプト
    上記と同様ですが、ビルドが完了した後に実行されます(コード署名などを含む)。追加のパッケージング、有効性チェックなどに役立ちます。

  3. SCMコミット前/後スクリプト。
    プロジェクトの整合性をチェックする。

  4. 事前/事後ファイル保存スクリプト。
    保存する前にファイルをチェック/変更します。たとえば、cody beautifiersを実行します

  5. カスタムプロジェクトアクション。
    主催者が任意のアクションを定義できることを知っています。しかし、これはユーザーごとの機能です(プロジェクトの一部ではありません)。ビルドメニューに表示され、プロジェクトの一部である、ビルドやクリーンなどのアクションを定義したいと思います。


この場合、回避策が不十分である理由を回答するために編集
ニコライルーエ

2
ありがとう。私はそれを適切な方法で行うことに賛成ですが、あまり侵入的ではないハッキングについては解決します。それらの余分な空白は本当に迷惑です。
Alexander Gladysh


0

スクリプトやハックなどを使用せずに、最善かつ簡単な方法。検索と置換に移動するだけです。スクリプトやハックなどを使用せずに、最良で簡単な方法を使用できます。[検索と置換]に移動し、「alt / option +スペース」を押し、置換バーの「スペース」ボタンを押して、「すべて置換」をクリックします。空白を通常のスペースに置き換え、警告/エラーがなくなります!!


1
これは質問で要求されたとおりに末尾のスペースのみを削除しますか?
高炉
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.