在SublimeText中获取当前文件夹的父文件夹

0 投票
1 回答
1005 浏览
提问于 2025-04-17 22:33

我正在使用一个叫做Terminal的插件,链接在这里:http://wbond.net/sublime_packages/terminal,它可以打开一个终端窗口,使用起来非常不错。不过,我有一个特定的需求,想要实现两个额外的功能。

1) 我希望在终端中打开当前目录的上级目录,而不是当前目录。比如说:

上级目录(parent_dir)

子目录(child_dir) [在这个“在这里打开终端”的右键菜单上,我希望能改成更合适的名称,这样点击后就能打开上级目录的终端]

在这个链接中:https://github.com/wbond/sublime_terminal/blob/master/Terminal.py#L110,有我们需要的代码。

在Sublime中,“self.window.folders()[0]”似乎可以返回当前文件夹的路径。所以我尝试了这样做:

os.path.dirname(self.window.folders()[0])

但是没什么用。

2) 一旦打开了上级目录,我想运行一个特定的命令“deploy course_correction”,这个命令是我一个朋友提供的本地Python库里的。

我在Python方面的知识显然不够。请帮帮我,如果这只是一个很小的事情,我自己没能搞明白的话。

1 个回答

2

你可以为这个目的创建一个构建系统。

假设你的项目在 /var/project 这个文件夹里,而你正在处理一个位于 /var/project/sys 文件夹中的文件 myfile

那么你可以创建一个新的构建系统:

点击工具 -> 构建系统 -> 新建构建系统...

然后把下面的内容粘贴进去:

{
    "working_dir": "${file_path}/../",
    "shell_cmd": "deploy course_correction"
}

按下保存 ctrl+s,把它保存到你的 sublime text 用户目录,命名为 deploy_course_correction.sublime-build

这样它就会出现在构建系统的菜单里,你需要选择它:

工具 -> 构建系统 -> deploy_course_correction

确保你的文件 /project/sys/myfile 是打开并且被选中的,然后按下 ctrl+b

这时会打开一个构建结果面板,显示你命令的输出。

希望这正是你想要的。

如果你愿意,也可以调整它,让它不依赖于 sys/myfile 这个文件。

撰写回答