关于空白:Sublime Text 2:根据需要修剪尾随空格

Sublime Text 2: Trim trailing white space on demand

我知道Sublime Text 2可以在保存时删除文件上的尾随空格。

在团队中工作并对文件进行更改时,这往往会产生巨大的差异,使同行代码审查变得更加繁琐。 出于这个原因,我倾向于仅在我对文件进行大量更改时才进行空白区域清理,并留下空白区域以进行微小更改。

我想知道是否有任何命令在"Activate trimming on save > Save file > Deactivate trimming"以外的文件上按需执行修剪空白区域。

在文档和stackoverflow中搜索没有显示任何相关内容,所有链接似乎都在讨论保存时的自动修剪。


注意:使用此插件会使Sublime Text显着变慢

我使用TrailingSpaces插件。

Highlight trailing spaces and delete them in a flash.

ST2 provides a way to automatically delete trailing spaces upon file
save. Depending on your settings, it may be more handy to just
highlight them and/or delete them by hand. This plugin provides just
that!

用法:单击"编辑/尾随空格/删除"。

要添加键绑定,请打开"首选项/键绑定 - 用户"并添加:

1
{"keys": ["ctrl+alt+t"],"command":"delete_trailing_spaces" }


我使用这些步骤在Sublime Text中快速按需解决方案:

  • 查找>替换...
  • 找到什么:[ \t]+
  • 替换为:
  • 全部替换
  • 您也可以通过以下方式为大量文件执行此操作

  • 查找>在文件中查找...
  • 查找:[ \t]+
  • 哪里:
  • 替换:
  • 更换

  • 您只需使用正则表达式删除尾随空格:

  • 查找>替换...
  • 找到:[^\S

    ]+$

  • 替换为:留空。
  • 点击"全部替换"
  • [^\S

    ]+$是Regex,用于"至少一个空白字符(所以空格和制表符,但不是换行符,使用双重否定),后跟行尾"

    必须启用正则表达式:
    Enable regex is search dialog


    这是一种超级简单的方法,它不使用任何插件或设置,并且在大多数情况下都可以使用。

  • 多选并将光标移动到每一行的末尾
  • 按住CTRL-Shift键,按向左键,向右键
  • 现在应该选择行尾的空格和制表符。按删除或退格键

    注意 - 特殊字符如(和+)也可以在此行的末尾选择,而不仅仅是空格。

  • 如何多选所有行:

    一种方法是使用鼠标中键垂直选择,然后点击结束键,如果它是一个小选择。

    使用热键:

  • CTRL-A(全选)
  • CTRL-SHIFT-L(将光标放在所有选定的行上)
  • 结束(转到行尾)
  • 您还可以使用find函数查找每行中的内容,例如空格字符:

  • s(使用正则表达式)
  • 单击全部查找
  • 按"结束"键可在每行末尾获得多个光标
  • 示范文本:

    1
    2
    3
    4
    5
    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


    我在这里发现了一个问题:
    http://www.sublimetext.com/forum/viewtopic.php?f=4&t=4958

    您可以修改包

    1
    trim_trailing_white_space.py

    位于默认包目录中,这样:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    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) != '
    ':
    edit = view.begin_edit()
    view.insert(edit, view.size(),"
    ")
    view.end_edit(edit)

    现在,您可以将命令添加到键盘映射配置中:

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