【问题标题】:key map sublimeREPL commands in Sublime Text 2Sublime Text 2 中的键映射 sublimeREPL 命令
【发布时间】:2012-11-24 07:51:18
【问题描述】:

我正在尝试为 SublimeREPL 插件命令映射键盘快捷键。看看 SublimeREPL,它看起来像一个菜单项命令被定义为:

Default.sublime-commands { "caption": "SublimeREPL:打开文件夹的 SBT", “命令”:“run_existing_window_command”,“参数”: { “id”:“repl_sbt”, “文件”:“配置/Scala/Main.sublime-menu” } }

或在

Main.sublime-menu

               {"command": "repl_open",
                 "caption": "SBT for opened folder",
                 "id": "repl_sbt",
                 "mnemonic": "b",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "external_id": "scala",
                    "cmd": {"linux": ["sbt"],
                            "osx": ["sbt"],
                            "windows": ["sbt"]},
                    "soft_quit": "\nexit\n",
                    "cwd": "$folder",
                    "cmd_postfix": "\n", 
                    "extend_env": {"osx": {"EMACS": "1", "PATH": "{PATH}:/usr/local/bin"},
                                   "linux": {"EMACS": "1", "PATH": "{PATH}:/usr/local/bin"},
                                   "windows": {"EMACS": "1"}},
                    "suppress_echo": false, 
                    "syntax": "Packages/Scala/Scala.tmLanguage"
                    }
                } 

我尝试在我的 SublimeREPL.sublime-settings 中将键绑定到:

[{ "keys": ["super+shift+k"], "command": "run_existing_window_command", "args":
        {
            "id": "repl_sbt",
            "file": "config/Scala/Main.sublime-menu"
        }
}]

但是当我尝试使用它时,Sublime 控制台只会说:

选择器没有命令:noop:

如果我将其映射到:

[{ "keys": ["super+shift+k"],  "command": "repl_open",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "external_id": "scala",
                    "cmd": {"linux": ["sbt"],
                            "osx": ["sbt"],
                            "windows": ["sbt"]},
                    "soft_quit": "\nexit\n",
                    "cwd": "$folder",
                    "cmd_postfix": "\n", 
                    "extend_env": {"osx": {"EMACS": "1", "PATH": "{PATH}:/usr/local/bin"},
                                   "linux": {"EMACS": "1", "PATH": "{PATH}:/usr/local/bin"},
                                   "windows": {"EMACS": "1"}},
                    "suppress_echo": false, 
                    "syntax": "Packages/Scala/Scala.tmLanguage"
                    }

}]

【问题讨论】:

    标签: sublimetext2 keymapping sublimerepl


    【解决方案1】:

    您的第一个键绑定是正确的,应该可以按预期工作。位置在 Preferences -> Key Bindings - User 文件中。

    [{ "keys": ["super+shift+k"], "command": "run_existing_window_command", "args":
            {
                "id": "repl_sbt",
                "file": "config/Scala/Main.sublime-menu"
            }
    }]
    

    根据您的描述,我怀疑有其他命令在劫持 super+shift+k。

    >>> sublime.log_commands(True)
    

    会让你看到什么时候被调用。

    【讨论】:

    • 你是对的,确实有效。我的问题是我把它放在 SublimeREPL.sublime-settings 而不是我的用户键绑定文件 ~/Library/Application Support/Sublime Text 2/Packages/User/Default (OSX).sublime-keymap
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多