Sublime Text 2: Trim trailing white space on demand
我知道Sublime Text 2可以在保存时删除文件上的尾随空格。
在团队中工作并对文件进行更改时,这往往会产生巨大的差异,使同行代码审查变得更加繁琐。 出于这个原因,我倾向于仅在我对文件进行大量更改时才进行空白区域清理,并留下空白区域以进行微小更改。
我想知道是否有任何命令在
在文档和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中快速按需解决方案:
您也可以通过以下方式为大量文件执行此操作
您只需使用正则表达式删除尾随空格:
]+$
]+$是Regex,用于"至少一个空白字符(所以空格和制表符,但不是换行符,使用双重否定),后跟行尾"
必须启用正则表达式:
这是一种超级简单的方法,它不使用任何插件或设置,并且在大多数情况下都可以使用。
现在应该选择行尾的空格和制表符。按删除或退格键
注意 - 特殊字符如(和+)也可以在此行的末尾选择,而不仅仅是空格。
如何多选所有行:
一种方法是使用鼠标中键垂直选择,然后点击结束键,如果它是一个小选择。
使用热键:
您还可以使用find函数查找每行中的内容,例如空格字符:
示范文本:
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" } |