111

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

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

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

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

4

5 に答える 5

74

注意: このプラグインを使用すると、Sublime Text が大幅に遅くなります

これにはTrailingSpacesプラグインを使用します。

末尾のスペースを強調表示し、それらを一瞬で削除します。

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

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

キーバインドを追加するには、「設定/キーバインド - ユーザー」を開き、以下を追加します:

{ "keys": ["ctrl+alt+t"], "command": "delete_trailing_spaces" }
于 2012-09-10T09:11:48.567 に答える
40

末尾の空白を削除するには、正規表現を使用するだけです。

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

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

正規表現を有効にする必要があります: 検索ダイアログで正規表現を有効にする

于 2016-10-24T08:48:35.060 に答える
23

この方法は完全ではありませんが、プラグインや設定を使用せず、ほとんどの状況で機能します。

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

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

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

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

ホットキーを使用:

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

find 関数を使用して、スペース文字など、すべての行にあるものを見つけることもできます。

  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
于 2013-05-08T23:18:02.553 に答える
13

ここで解決策を見つけました: 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" }
于 2012-09-06T11:54:17.993 に答える