gpt4 book ai didi

keyboard-shortcuts - Sublime Text 3 键绑定(bind) - 使用变量

转载 作者:行者123 更新时间:2023-12-01 23:39:05 25 4
gpt4 key购买 nike

我正在尝试进行按键绑定(bind),以使用当前的 Sublime Text 3 $project_path 文件夹打开我最喜欢的 git 应用程序,但不知何故 Sublime Text 3 不会将变量转换为实际路径。

您可以在下面找到我当前的键盘绑定(bind)文件。

[
{
"keys": ["super+ctrl+alt+g"],
"command": "exec",
"args":
{
"shell_cmd": "open -a Gitbox $project_path"
}
}
]

$project_path 没有转换为实际的项目路径...我做错了什么?我应该使用“构建系统”吗?我研究了构建系统,但问题是您必须选择文件范围(例如 *.rb),并且我希望此键盘快捷键对我的所有项目/文件都有效。

在textmate2中,通过在包编辑器中创建一个新的“命令”并为其分配一个快捷方式,可以轻松实现相同的快捷方式。命令将是:

#!/usr/bin/ruby
exec "open -a Gitbox '#{ENV['TM_PROJECT_DIRECTORY']}'"

所以我试图在 Sublime Text 3 中实现同样的目标,但出了问题。

谢谢!

最佳答案

编辑:

与此同时,我构建了一个通用插件,使您能够通过击键或通过命令面板打开任何外部应用程序。该插件可以在这里找到:ExternalTools

您可以通过命令面板轻松安装它cmd+shift+p

根据您的情况,您可以转到首选项/按键绑定(bind)并添加以下内容:

{ 
"keys": ["super+ctrl+alt+g"],
"command": "external_tools_run",
"args": { "cmd": ["open", "-a", "Gitbox", "$project_path"] }
}

我仍然没有 Mac,所以它有可能无法正常工作。在这种情况下,如果您能给我反馈(请参阅 Issues ),我将非常高兴。

<小时/>

原始答案:

我花了几个小时搜索同样的问题。毕竟我决定用我自己的占位符创建一个小插件。

import sublime, sublime_plugin

class RunAppCommand(sublime_plugin.WindowCommand):
def run(self, app_args):
app_args = self.fill_placeholder(app_args)
self.window.run_command("exec", {"cmd": app_args } )

def fill_placeholder(self, args):
res = []
proj_folder = self.get_project_folder()

for arg in args:
arg = arg.replace("$PROJECT_FOLDER", proj_folder)
res.append(arg)

return res

def get_project_folder(self,default=None):
proj_folder = ""

if self.window.project_file_name():
proj = self.window.project_data()

proj_folder_obj = self.get_first(proj["folders"])
if proj_folder_obj:
proj_folder = proj_folder_obj["path"]

elif self.window.folders():
proj_folder = self.get_first(self.window.folders())

if not proj_folder:
sublime.status_message("No project folder located")
return default

return proj_folder

def get_first(self, iterable, default=None):
if iterable:
for item in iterable:
return item
return default

将上面的代码保存到 Packages/User/RunApp.py 后,只需将以下内容添加到 Default.sublime-keymap 即可使命令正常工作:

{ "keys": ["super+ctrl+alt+g"], "command": "run_app", "args": { "app_args": ["open", "-a", "Gitbox", "$PROJECT_FOLDER"]}}

这可能不是最好的解决方案,但它对我有用。

关于keyboard-shortcuts - Sublime Text 3 键绑定(bind) - 使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26800761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com