web-dev-qa-db-ja.com

Sublime Text 2:オンデマンドで末尾の空白を切り取る

Sublime Text 2は保存時にファイルの末尾の空白を削除できることを知っています。

チームで作業してファイルの変更をコミットすると、大きな差分が生成され、ピアコードのレビューがより面倒になる傾向があります。そのため、とにかくファイルに大きな変更をコミットする場合にのみホワイトスペースのクリーニングを行い、小さな変更はそのままにしておきます。

空白のトリミングを実行するためのコマンドがあるかどうかを知りたいオンデマンドファイルで、"Activate trimming on save > Save file > Deactivate trimming"以外。

ドキュメントおよびstackoverflowで検索しても関連するものは何も表示されませんでした。すべてのリンクは保存時の自動トリミングについて説明しているようです。

91
José Luis

注意:このプラグインの使用 Sublime Textを大幅に遅くします

このために TrailingSpaces プラグインを使用します。

末尾のスペースを強調表示し、フラッシュで削除します。

ST2は、ファイルの保存時に末尾のスペースを自動的に削除する方法を提供します。設定によっては、単に強調表示したり、手動で削除したりする方が便利な場合があります。このプラグインはまさにそれを提供します!

使用法:[編集/末尾のスペース/削除]をクリックします。

キーバインディングを追加するには、[設定/キーバインディング-ユーザー]を開き、以下を追加します。

{ "keys": ["ctrl+alt+t"], "command": "delete_trailing_spaces" }
69
Sridhar Katakam

Sublime Text内の迅速なオンデマンドソリューションには、次の手順を使用します。

  1. 検索>置換...
  2. 何を見つける:[ \t]+\n
  3. 置換:\n
  4. すべて置換

大量のファイルに対してこれを行うこともできます

  1. 検索>ファイルで検索...
  2. 検索:[ \t]+\n
  3. どこ:
  4. 置換:\n
  5. 置換
61
Jason Favors

単に正規表現を使用して、末尾の空白を削除できます。

  1. 検索>置換...
  2. 何を見つける:[^\S\r\n]+$
  3. 置換:空のままにします。
  4. 「すべて置換」をクリックします

[^\S\r\n]+$は、Regexで、「少なくとも1つの空白文字(つまり、スペースとタブで、改行ではなく、二重否定を使用)の後に末尾が続く行の」

正規表現を有効にする必要があります: Enable regex is search dialog

23
antou

これはプラグインや設定を使用せず、ほとんどの状況で機能する非常に簡単な方法です。

  1. 複数選択してすべての行の末尾にカーソルを移動します
  2. CTRL-Shiftを押しながら左、右を押す
  3. 行の最後のスペースとタブが選択されます。 DeleteキーまたはBackspaceキーを押します

    -スペースだけでなく、このポイントの行末で(や+などの特殊文字も選択できます。

すべての行を複数選択する方法:

1つの方法は、中央のマウスキーを使用して垂直方向に選択し、選択範囲が小さい場合はEndキーを押すことです。

ホットキー付き:

  1. CTRL-A(すべて選択)
  2. CTRL-SHIFT-L(選択したすべての行にカーソルを置きます)
  3. END(行末に移動)

検索機能を使用して、スペース文字など、すべての行にあるものを検索することもできます。

  1. \ s(正規表現を使用)
  2. [すべて検索]をクリックします
  3. 「End」キーを押して、各行の最後に複数のカーソルを取得します

サンプルテキスト:

text and number     44  more text and a space  
text and number 44  more text and 2 tabs        
text and number 44  more text and no space or tab

text and number 44  more text after a line feed
20
shanemgrey

ここで解決策を見つけました: http://www.sublimetext.com/forum/viewtopic.php?f=4&t=4958

パッケージを変更できます

trim_trailing_white_space.py

デフォルトのパッケージディレクトリにあるこの方法:

import sublime, sublime_plugin

def trim_trailing_white_space(view):
    trailing_white_space = view.find_all("[\t ]+$")
    trailing_white_space.reverse()
    edit = view.begin_edit()
    for r in trailing_white_space:
        view.erase(edit, r)
    view.end_edit(edit)

class TrimTrailingWhiteSpaceCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        trim_trailing_white_space(self.view)

class TrimTrailingWhiteSpace(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("trim_trailing_white_space_on_save") == True:
            trim_trailing_white_space(view)

class EnsureNewlineAtEof(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("ensure_newline_at_eof_on_save") == True:
            if view.size() > 0 and view.substr(view.size() - 1) != '\n':
                edit = view.begin_edit()
                view.insert(edit, view.size(), "\n")
                view.end_edit(edit)

これで、キーマップ構成にコマンドを追加できます。

{ "keys": ["your_shortcut"], "command": "trim_trailing_white_space" }
13