Sublimetext3 升华文本:选择/编辑变量*的所有匹配项,其作用范围为函数*
Sublime提供以下功能:Sublimetext3 升华文本:选择/编辑变量*的所有匹配项,其作用范围为函数*,sublimetext3,Sublimetext3,Sublime提供以下功能: 选择/编辑变量的所有引用(全速查找;Windows上的alt+F3) 逐个选择每个事件,然后编辑合计总数(下一步快速添加;在Windows上按ctrl+d) 我想要的是: 选择/编辑功能范围内的所有事件 注意:我已经阅读了这个相关链接(),但没有看到关于编辑如何被限制在函数范围内的答案。您可以创建一个相当简单的插件来实现这一点,使用Quick Find All,然后删除不在当前函数内的任何选择 从工具菜单->开发者->新插件 将新选项卡的内容替换为以下内容
- 选择/编辑变量的所有引用(全速查找;Windows上的alt+F3)
- 逐个选择每个事件,然后编辑合计总数(下一步快速添加;在Windows上按ctrl+d)
- 选择/编辑功能范围内的所有事件
注意:我已经阅读了这个相关链接(),但没有看到关于编辑如何被限制在函数范围内的答案。您可以创建一个相当简单的插件来实现这一点,使用Quick Find All,然后删除不在当前函数内的任何选择
- 从工具菜单->开发者->新插件
- 将新选项卡的内容替换为以下内容:
- 不要在命令下使用
find\u all\u,而要在函数中使用
select\u word\u
免责声明:这肯定适用于ST build 3142中的PHP和其他作用于整个函数的语法,但对于不能/不这样做的其他语法,可能需要使用不同的方法来检测函数的开始和结束位置。您使用的是哪种语言语法(突出显示)?根据答案,可能有一种方法可以编写一个小插件this@KeithHall干杯,基思;我正在使用PHP
import sublime
import sublime_plugin
class SelectWordInFunctionCommand(sublime_plugin.TextCommand):
def run(self, edit):
view = self.view
prev_sel = [sel for sel in view.sel()]
function_region = next((region for region in view.find_by_selector('meta.function') if region.contains(view.sel()[0])), None)
if function_region:
#word = view.expand_by_class(view.sel()[0].begin(), sublime.CLASS_WORD_START + sublime.CLASS_WORD_END)
view.window().run_command('find_all_under')
sel = [sel for sel in view.sel() if function_region.contains(sel)]
view.sel().clear()
view.sel().add_all(sel if any(sel) else prev_sel)
else:
view.window().status_message('Not inside a function')
{ "keys": ["alt+f3"], "command": "select_word_in_function", "context":
[
{ "key": "selector", "operator": "equal", "operand": "meta.function", "match_all": true },
]
},