Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sublimetext3 升华文本:选择/编辑变量*的所有匹配项,其作用范围为函数*_Sublimetext3 - Fatal编程技术网

Sublimetext3 升华文本:选择/编辑变量*的所有匹配项,其作用范围为函数*

Sublimetext3 升华文本:选择/编辑变量*的所有匹配项,其作用范围为函数*,sublimetext3,Sublimetext3,Sublime提供以下功能: 选择/编辑变量的所有引用(全速查找;Windows上的alt+F3) 逐个选择每个事件,然后编辑合计总数(下一步快速添加;在Windows上按ctrl+d) 我想要的是: 选择/编辑功能范围内的所有事件 注意:我已经阅读了这个相关链接(),但没有看到关于编辑如何被限制在函数范围内的答案。您可以创建一个相当简单的插件来实现这一点,使用Quick Find All,然后删除不在当前函数内的任何选择 从工具菜单->开发者->新插件 将新选项卡的内容替换为以下内容

Sublime提供以下功能:

  • 选择/编辑变量的所有引用(全速查找;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 },
    ]
},