崇高文本2: 根据需要修剪尾部的空白

我知道崇高文本2可以删除文件后面的空白保存。

当在一个团队中工作并将更改提交到一个文件时,这往往会产生巨大的差异,从而使同行代码审查变得更加麻烦。由于这个原因,我更喜欢只在提交对文件的巨大更改时才清除空白,而对于较小的更改则保留空白。

我想知道,除了 "Activate trimming on save > Save file > Deactivate trimming"之外,是否有任何命令可以执行对文件上的空白 随叫随到进行修剪。

在文档和堆栈溢出中的搜索没有显示任何相关信息,所有的链接似乎都在谈论保存时的自动修剪。

113388 次浏览

我在这里找到了解决办法: 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" }

注意: 使用这个插件 使崇高的文本显著减慢

我使用 尾随空间插件。

突出显示尾部空格并在闪光灯下删除它们。

ST2提供了一种自动删除文件尾随空格的方法 save. Depending on your settings, it may be more handy to just 突出显示和/或手动删除它们 that!

用法: 点击“编辑/尾随空格/删除”。

要添加密钥绑定,请打开“ Preferences/Key Bindings-User”并添加:

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

这种方法并不完美,但没有使用插件或设置,在大多数情况下都可以工作。

  1. 多重选择并将光标移动到每一行的末尾
  2. 按住 Ctrl-Shift,按左键,右键
  3. 现在应该选择行尾的空格和制表符。按“删除”或“退格”

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

How to Multi-Select all lines:

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

热键:

  1. CTRL-A (全部选中)
  2. Ctrl-Shift-L (将光标放在所选的所有行上)
  3. 结束(到行的末尾)

您还可以使用 find 函数查找每一行中的内容,比如空格字符:

  1. S (使用 regex)
  2. 单击“查找全部”
  3. 按“结束”键可以在每行的末尾获得多个光标

示例文字:

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

我使用这些步骤来实现 SublimText 中的快速随需应变解决方案:

  1. 查找 > 替换..。
  2. 查找内容: [ \t]+\n
  3. 替换为: \n
  4. 全部替换

您也可以通过

  1. 查找 > 在文件中查找..。
  2. Find: [ \t]+\n
  3. Where:
  4. 替换: \n
  5. 替换

You can simply use a regex to remove trailing whitespaces:

  1. 查找 > 替换..。
  2. 找到什么: [^\S\r\n]+$
  3. 替换为: 留空。
  4. 点击“全部替换”

[^\S\r\n]+$ is 正方糖 for "at least one whitespace character (so spaces and tabs but not newlines, using a double negation) followed by the end of the line"

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