【问题标题】:Accessing HOME path in sublime text 2 command在 sublime text 2 命令中访问 HOME 路径
【发布时间】:2012-08-29 09:11:36
【问题描述】:

我想要一个简单的 sublime-command 来打开我的主文件夹中的特定(点配置)文件。是否有我可以使用的变量或其他魔法,例如 ${packages},但用于用户的主文件夹?

目前我有(Default.sublime-commands)

{
    "caption": "Edit my config",
    "command": "open_file",
    "args": {
        "file": "/Users/MyName/.myconfig"
    }
}

但想摆脱硬编码的用户名。

不幸的是,我在 sublime 的 api“文档”中找不到任何内容。

【问题讨论】:

  • 不知道它是否会起作用,但请尝试:"file": sublime.packages_path() + "Users/MyName/.myconfig" 在 args 部分
  • 这不是我想要包路径,这可以通过 ${packages} 实现,而是希望为用户的家提供类似 ${home} 的东西(这不起作用)目录。
  • 怎么样~?让操作系统完成工作?
  • 当然,我先试了~,还是不行。
  • 看来 Sublime 不允许 shell 扩展,也无法访问 shell 变量。我想您可以编写一个外部 shell 脚本,但这似乎很愚蠢。

标签: sublimetext2


【解决方案1】:

可以使用这样的自定义命令来完成:

import sublime_plugin, getpass

class OpenCustomFileCommand(sublime_plugin.WindowCommand):
  def run(self, file_name):
    if("{username}" in file_name):
      file_name = file_name.replace("{username}", getpass.getuser())
    self.window.open_file(file_name)

以及以下(Default.sublime-commands):

{
  "caption": "Edit my config",
  "command": "open_custom_file",
  "args": { "file_name": "/Users/{username}/.myconfig" }
}

当然,您也可以用自己的替代品扩展 OpenCustomFileCommand。

附:命令必须存储在 ST2 的 Packages 目录中,即文件 open_custom_file.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多