Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/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
Search 是否有办法在sublime 3中显示和搜索所有配置的键盘快捷键?_Search_Keyboard Shortcuts_Sublimetext3_Text Editor - Fatal编程技术网

Search 是否有办法在sublime 3中显示和搜索所有配置的键盘快捷键?

Search 是否有办法在sublime 3中显示和搜索所有配置的键盘快捷键?,search,keyboard-shortcuts,sublimetext3,text-editor,Search,Keyboard Shortcuts,Sublimetext3,Text Editor,在《升华文本3》中,我确实缺少两个功能: 功能齐全的集成终端-类似于geany(是的,我知道Glue,但它的功能不像普通终端) 可搜索显示所有当前活动、配置的键盘快捷键和所有软件包,并提供简短说明和软件包名称 虽然我可以不使用前者(但我很想得到这方面的评论),但我怀疑有一些函数或用户脚本/插件可以实现后者。我什么也找不到。我真的厌倦了浏览许多数据包的相当神秘的文本配置文件,只是为了发现快捷方式被另一个数据包的快捷方式覆盖了。需要帮助吗?关于所有当前活动的键盘快捷键的可搜索显示,您可以轻松创建

在《升华文本3》中,我确实缺少两个功能:

  • 功能齐全的集成终端-类似于geany(是的,我知道
    Glue
    ,但它的功能不像普通终端)
  • 可搜索显示所有当前活动、配置的键盘快捷键所有软件包,并提供简短说明和软件包名称

虽然我可以不使用前者(但我很想得到这方面的评论),但我怀疑有一些函数或用户脚本/插件可以实现后者。我什么也找不到。我真的厌倦了浏览许多数据包的相当神秘的文本配置文件,只是为了发现快捷方式被另一个数据包的快捷方式覆盖了。需要帮助吗?

关于所有当前活动的键盘快捷键的可搜索显示,您可以轻松创建一个插件来执行此操作:

  • 工具
    菜单->
    开发者
    ->
    新插件
  • 将模板的内容替换为以下内容:

    import sublime, sublime_plugin
    
    class ShowMappedKeysCommand(sublime_plugin.TextCommand):
        def run(self, edit):
            files = sublime.find_resources('*.sublime-keymap')
    
            items = []
            for file in files:
                contents = sublime.load_resource(file)
                mapped = sublime.decode_value(contents)
    
                for mapping in mapped:
                    items.append((file, mapping['keys'], mapping['command']))
    
            self.view.window().run_command('new_file')
            view = self.view.window().active_view()
            view.insert(edit, 0, '\n'.join(repr(item) for item in items))
    
  • 将其保存在默认文件夹中,命名为
    show\u mapped\u keys.py

然后,您可以将一个键映射到新创建的
show_-mapped_-keys
命令,或者从Sublime控制台(
View
menu->
show-Console
->
Sublime.active_window().active_-View().run_命令(“show_-mapped_-keys”)

这将创建一个新选项卡,其中列出所有活动配置的键盘绑定,显示其定义位置(即它所属的包或您的用户keybindings文件)、键是什么以及keybinding将执行的命令的名称。然后就可以像平常一样进行搜索了


显然,如果有冲突,这不会显示哪个优先级。找到答案的一种方法是在控制台中执行
sublime.log_命令(True)
,然后再尝试相关的键绑定,并查看执行的是哪个命令。

虽然Keith Hall的工作很好,但Package Control中已经有一个插件,它有许多特性:由skuroda提供。您可以搜索所有关键映射、所有冲突、直接冲突、重叠冲突、单个包冲突(都在一个包内)和一个非常有用的冲突:多个包冲突,您可以选择怀疑冲突的包并仅测试它们。如果你有像或安装了大约一百万个组合键的软件包(无意冒犯,我喜欢这些软件包),并且你知道问题不在那里,那么这非常好。

请注意,
Tools->Developer
菜单目前只在开发版本中可用。伙计,这是黄金!我正打算这么做,但它被其他几个项目积压了下来。知道在输出中包含args的方法吗?我尝试添加
mapping['args']
,它会删除一个
KeyError
@Enteleform我想不是所有的键映射都有参数,所以你可以做
mapping.get('args',None)
,如果
args
键不存在,它将输出
None
,否则
args
:)太棒了,谢谢!在我整理完一些东西后,我可能会想办法解决这个问题。如果每个
supreme keymap
都有一个带有子QuickPanel的QuickPanel,那就太棒了,这样你就可以快速浏览你的网页了bindings@Enteleform从中,听起来FindKeyConflicts包值得一看,也许它已经可以以这种格式显示绑定:)