Sublimetext3 删除升华文本中的空白

Sublimetext3 删除升华文本中的空白,sublimetext3,sublimetext,sublime-text-plugin,Sublimetext3,Sublimetext,Sublime Text Plugin,有没有办法删除所有字符,直到升华中的第一个空格。我知道您可以使用ctrl+delete来执行此操作,但它会在非单词字符(“,:,&,*,等等)处停止。当您尝试删除aaa aaa 2+a时,从末尾开始,它将删除2+a直到+签名,但它将删除aaa直到空格。我需要更改它,这样它将删除2+a直到第一个空格。解决方案可以是任何内容;更改设置,插件。我已经为其编写了一个升华文本插件根据需要删除文本。它几乎与ST的delete\u word命令相同,但仅在空白/非空白处中断 当调用插件时,它会将文本从光标中删

有没有办法删除所有字符,直到升华中的第一个空格。我知道您可以使用
ctrl+delete
来执行此操作,但它会在非单词字符(“,:,&,*,等等)处停止。当您尝试删除
aaa aaa 2+a
时,从末尾开始,它将删除
2+a
直到
+
签名,但它将删除
aaa
直到空格。我需要更改它,这样它将删除
2+a
直到第一个空格。解决方案可以是任何内容;更改设置,插件。

我已经为其编写了一个升华文本插件根据需要删除文本。它几乎与ST的
delete\u word
命令相同,但仅在空白/非空白处中断

当调用插件时,它会将文本从光标中删除到下一组或上一组字符,该组字符被定义为空白字符或非空白字符。因此,如果连续运行多次,它将在删除光标前后的空白字符组和非空白字符组之间交替运行
run()
方法的仪表(即命令的arg)控制删除方向

将插件保存在您的配置
文件夹层次结构中的某个位置

.../sublime-text-3/Packages/User/DeleteToWhitespace.py
将密钥绑定添加到您的用户
。sublime keymap
文件。例如

//
//这些键绑定覆盖ST'delete_word'键,但使用您想要的任何键。
//您可以使用'super+delete'和'super+backspace',并保持ST的delete键完好无损。
// 
{“keys”:[“ctrl+delete”],“command”:“delete_to_whitespace”,“args”:{“forwards”:true},
{“keys”:[“ctrl+backspace”],“command”:“delete_to_whitespace”,“args”:{“forwards”:false},
下面是
DeleteToWhitespace.py
插件。它已上载到–此链接直接链接到

#
#名称:删除为空白
#需要:用于升华文本v3的插件
#命令:删除\u到\u空格
#Args:forwards:bool(如果为false,则向后删除)
#许可证:麻省理工学院许可证
#
导入升华,升华插件,重新
类DeleteToWhitespaceCommand(升华插件.TextCommand):
"""
一个升华文本插件,可将文本从光标删除到下一个或多个位置
前一组字符,该组定义为
空白或非空白字符。因此,如果在中运行多次
它将在删除空白组和
光标前面或后面的非空白。的forwards参数
run()方法(即命令的arg)控制删除方向。
"""
def运行(自我、编辑、转发=真):
self.edit=编辑
self.forwards=向前
如果转发:
self.delete_forwards()
其他:
self.delete_backwards()
def删除_转发(自):
空格_regex=“^\s+”
非\u空格\u regex=“^\S+”
对于self.view.sel()中的sel:
如果sel.size()大于0:
self.view.erase(self.edit,sel)
持续
# ∴ sel.a==sel.b==sel.begin()==sel.end()
#view.full_line()包括尾随的换行符(如果有)。
光标=选择a
line=self.view.full_行(光标)
cursor\u to\u eol=升华区域(cursor,line.end())
cursor\u to\u eol\u str=self.view.substr(cursor\u to\u eol)
匹配=重新搜索(空格\u正则表达式、光标\u到\u eol\u str)
如果匹配:
self.erase_匹配_字符(光标,匹配)
持续
匹配=重新搜索(非空白正则表达式,光标指向下线)
如果匹配:
self.erase_匹配_字符(光标,匹配)
持续
def向后删除_(自身):
空格\u regex=“\s+$”
非\u空格\u正则表达式=“\S+$”
对于self.view.sel()中的sel:
如果sel.size()大于0:
self.view.erase(self.edit,sel)
持续
# ∴ sel.a==sel.b==sel.begin()==sel.end()
#view.line()不包括尾随的换行符(如果有)。
光标=选择a
line=self.view.line(光标)
cursor\u to\u bol=升华区域(cursor,line.begin())
cursor\u to\u bol\u str=self.view.substr(cursor\u to\u bol)
#删除“上一行”的换行。
如果光标到bol.size()=0且光标>0:
擦除区域=升华区域(光标,光标-1)
self.view.erase(self.edit,erase\u区域)
持续
匹配=重新搜索(空格\u正则表达式,光标\u到\u bol\u str)
如果匹配:
self.erase_匹配_字符(光标,匹配)
持续
match=re.search(非空白正则表达式,光标指向布尔字符串)
如果匹配:
self.erase_匹配_字符(光标,匹配)
持续
def擦除匹配字符(自身、光标、匹配):
match\u len=match.end()-match.start()
如果自行转发:
擦除区域=升华区域(光标,光标+匹配区域)
其他:
擦除区域=升华区域(光标,光标-匹配区域)
self.view.erase(self.edit,erase\u区域)

我找到了解决方案。通过这个插件:

关键在于:

{ "keys": ["ctrl+backspace"], "command": "delete_to_beg_of_contig_boundary", "args": {"forward": false} }

它会从右向左删除所有字符,直到第一个空格。

您可以编写正则表达式,搜索它,选择全部并删除。我在键入时会这样做,就像使用
ctrl+backspace
一样。只需删除第一个空格/空格之前的所有无空格字符。我已经尝试过这一操作,但在按下热键时没有任何效果。