【问题标题】:How to start Sublime Text with selected project using a local .sublime-project file?如何使用本地 .sublime-project 文件启动选定项目的 Sublime Text?
【发布时间】:2013-05-16 03:35:39
【问题描述】:

我可能遗漏了明显的,但似乎无法解决这个相当简单和典型的案例(在 Debian 或 XP 上使用 v3 build 3022,以防万一):

  • 启动 Sublime Text 打开项目“myprj”,在其命令行中指定,
  • 使用位于该项目目录下的 default.sublime-project(例如 "/repo/myprj"),
  • 自动重新打开该项目的最后打开文件(即其工作区),
  • 为此使用 default.sublime-workspace(也来自同一项目目录)
  • 但(显然)不会自动打开从非项目会话中记住的任何其他文件,
  • 并在退出时自动保存所有打开的文件(到上述 default.sublime-workspace)。

理想情况下:

  1. $sublime_text --project /repo/myprj/default.sublime-project

应该可以工作。但事实并非如此(见下文)。

另一个似乎合理的近似值:

  1. "hot_exit""remember_open_files"设置为false,然后调用ST:

  2. $sublime_text --data /repo/myprj --project default.sublime-project

但 ST3 要么找不到项目文件(通过 --data),除非我先在那里 chdir(--data 似乎是 no longer supported?),要么它不会自动打开任何工作区文件从上次(尽管以前的“项目/将工作区另存为...”),或者,如果我将“remember_open_files”设置回 true,它只会重新打开最后打开的文件不管在命令行上给出的项目。

我猜问题是由于某种原因没有自动处理工作区文件,我只是在某处遗漏了一些微不足道的步骤。 (official docs(还有the unofficial)似乎在讨论command-line switches for OS X only,而要求--help实际上并没有帮助解决这个问题。)

(请注意:我不想先启动 ST,然后手动从内部切换到某个项目,我也不想将 sublime-project/-workspace 文件存储在prj. dir.) 非常感谢!

【问题讨论】:

  • 您尝试过简单的sublime_text /path/to/project/file 吗?在 Windows 7 中使用类似的命令,我已经能够实现类似于here 所描述的功能。我想如果你正在做的只是运行 sublime_text 可执行文件,那么在 Debian 中同样可以工作。
  • @Ninja:嗯。它仍然无法重新打开最后一个工作区文件。我想我误解了一些东西。当我执行“全部保存”或“将工作区另存为...”(至./default.sublime-workspace)时,即使在(希望是多余的)“项目的新工作区”之后,它实际上甚至似乎都没有保存打开的文件!至少我在工作区文件中找不到打开文件的名称(仅在“file_history”下查看文件名)。 ST 要么写入其他工作区文件,要么仍然需要“remember_open_files”:true。 (但是如何防止提到的错误重新加载?)
  • @Ninja:顺便说一句,您链接的页面上“关闭出现的重复项目窗口”的提示也可能是关键。 (对于这样一个基本用例来说,对于周围最好的程序员编辑器之一来说,这似乎是一个非常麻烦的解决方法,我简直不敢相信真正不存在更清洁的解决方案。)

标签: sublimetext2 sublimetext sublimetext3


【解决方案1】:

对于仍然希望这样做的任何人,您可以启动内置命令行工具并使用类似这样的项目启动它 (Mac OSX):

"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" --project "absolute-path-to-your.sublime-project"

【讨论】:

  • 谢谢,但像“Debian 或 XP”(通常是 Linux 或 Win)这样的系统仍然是问题所在。出于某种未知原因,OS X 在这方面的处理方式有所不同,并且已经记录了对它的支持(正如问题中所暗示的那样:“官方文档(以及非官方)似乎只讨论了 OS X 的命令行开关” )。
【解决方案2】:

这几天我一直在寻找类似问题的解决方案,但没有找到合适的方法。所以我用一个小苹果脚本创建了一个自动化应用程序。也许这对你也有帮助。

  1. 打开 Automator 并选择新闻应用程序。
  2. 创建一个动作来启动 Sublime Text 2
  3. 插入操作以执行以下苹果脚本:

delay 0.2

tell application "System Events"
    tell process "Sublime Text 2"
        tell menu bar 1
            tell menu bar item "Project"
                tell menu "Project"
                    tell menu item "Recent Projects"
                        tell menu "Recent Projects"
                            click menu item "~/yourproject.sublime-project"
                            keystroke "p" using {command down, shift down}
                        end tell
                    end tell
                end tell
            end tell
        end tell
    end tell
end tell

【讨论】:

  • 谢谢。抱歉,我已经放弃了 Sublime Text 并且最近没有使用它,所以我不确定:这个“Automator”是 ST 的一个功能,还是一些 3rd 的东西?
  • 我认为是这样的:en.wikipedia.org/wiki/Automator_%28software%29 对于使用 Debian 或 XP 的人来说非常有用。
猜你喜欢
  • 2018-10-07
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多