崇高的文字2:修剪尾随白色空间的需求
我知道Sublime Text 2可以在保存时删除文件尾部的空白。
在一个团队中工作并对文件进行更改时,这往往会产生巨大的差异,这使得同行代码审查更加繁琐。 出于这个原因,我宁愿只做空白区域清理,当我正在对文件进行大的修改时,留下空白,因为这是对小的修改。
我想知道除了"Activate trimming on save > Save file > Deactivate trimming"
之外,是否有任何命令在文件上按需执行"Activate trimming on save > Save file > Deactivate trimming"
。
在文档和计算器上search没有显示任何相关的,所有的链接似乎谈论保存自动修剪。
注意:使用这个插件使Sublime Text显着变慢
我为此使用了TrailingSpaces插件。
突出显示尾随空格并将其删除。
ST2提供了一种在文件保存时自动删除尾随空格的方法。 根据您的设置,只需突出显示和/或手动删除它们可能会更方便。 这个插件提供了这一点!
用法:点击“编辑/拖尾空格/删除”。
要添encryption钥绑定,请打开“首选项/密钥绑定 – 用户”并添加:
{ "keys": ["ctrl+alt+t"], "command": "delete_trailing_spaces" }
我使用这些步骤在Sublime Text中快速提供按需解决scheme:
- 查找>replace…
- find什么:
[ \t]+\n
- replace为:
\n
- 全部replace
你也可以通过一个大的文件来做到这一点
- 查找>在文件中查找…
- find:
[ \t]+\n
- 哪里:
- replace:
\n
- 更换
这是一个超级简单的方法,不使用插件或设置,并在大多数情况下工作。
- 多选并移动光标到每一行的末尾
- 按住CTRL-Shift,按左,右
-
现在应该select行尾的空格和制表符。 按删除或退格键
注 – 特殊字符如(和+)也可以在这一行的末尾select,而不仅仅是空格。
如何多select所有行:
一种方法是使用鼠标中键垂直select,然后点击结束键,如果它是一个小select。
使用热键:
- CTRL-A(全选)
- CTRL-SHIFT-L(将光标放在所有选中的行上)
- 结束(转到行尾)
您还可以使用find函数来查找每行中的内容,如空格字符:
- \ s(使用正则expression式)
- 单击查找全部
- 按“结束”键在每行的末尾获取多个游标
示例文本:
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
我在这里find了一个解决scheme: 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)
现在您可以将该命令添加到您的键盘映射configuration中:
{ "keys": ["your_shortcut"], "command": "trim_trailing_white_space" }
您可以简单地使用正则expression式来删除尾随的空格:
- 查找>replace…
- find:
[^\S\r\n]+$
- replace为:保留为空。
- 点击“全部replace”
[^\S\r\n]+$
是[^\S\r\n]+$
则expression式“至less有一个空格字符(所以空格和制表符,但不是换行符,使用双重否定),后面是行尾”