【问题标题】:Set working directory to location of active script in SublimeREPL在 SublimeREPL 中将工作目录设置为活动脚本的位置
【发布时间】:2014-12-23 20:41:29
【问题描述】:

我将 Sublime Text 3 与 SublimeREPL 一起用于 R 和 Python 中的命令。每当 SublimeREPL 启动时,它都会将当前工作目录设置为 Sublime Text 安装目录。这发生在 Windows 和 Mac OSX 上。通常,我需要从 R 或 Python 运行代码,这会打开与我正在运行的 Rpy 文件位于同一文件夹中的文件。在正常情况下(即不使用 Sublime Text),这可以正常工作,因为 R 或 Python 解释器知道在与脚本所在的目录相同的目录中查找。

但是,使用 SublimeREPL,命令作为文本“传输”到 SublimeREPL,因此 SublimeREPL 不知道程序来自哪里。因此,我需要在每个程序中明确指定我尝试访问的文件的位置,这有点笨拙,尤其是当我的程序移动时(它们会移动)。

有没有办法让 SublimeREPL 在启动时将当前工作目录设置为与当前活动脚本文件相同的目录?这将是一个很好的解决方法,因为如果我更改为使用位于不同目录中的文件,这仅意味着必须重新启动 REPL。

【问题讨论】:

  • 我刚刚在 ubuntu 中安装了一个干净的 SublimeText3 和 SublimeREPL 版本,当我启动 SublimeREPL 并写入 import os; os.getcwd() 时,它正确显示了我当前的文件目录。因此,换句话说,我无法重现您的问题。

标签: sublimetext3 sublimerepl


【解决方案1】:

我有同样的问题并找到了答案here

对于 Python 和 IPython,在您的 Packages/User 文件夹中创建 SublimeREPL/config/Python/Main.sublime-menu,并在其中指定 "cwd": "$file_path"

[
    {
        "id": "tools",
        "children":
        [{
            "caption": "SublimeREPL",
            "mnemonic": "r",
            "id": "SublimeREPL",
            "children":
            [
                {
                    "caption": "Python",
                    "id": "Python",

                    "children":[
                        {
                            "command": "repl_open",
                            "caption": "Python - Anaconda",
                            "id": "repl_python",
                            "mnemonic": "p",
                            "args": {
                                "type": "subprocess",
                                "encoding": "utf8",
                                "cmd": ["/path/to/Anaconda/python", "-i", "-u"],
                                "cwd": "$file_path",
                                "syntax": "Packages/Python/Python.tmLanguage",
                                "external_id": "python",
                                "extend_env": {"PYTHONIOENCODING": "utf-8"}
                            }
                        },
                        {
                            "command": "repl_open",
                            "caption": "IPython - Anaconda",
                            "id": "repl_python_ipython",
                            "mnemonic": "p",
                            "args": {
                                "type": "subprocess",
                                "encoding": "utf8",
                                "autocomplete_server": true,
                                "cmd": ["/path/to/Anaconda/python", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"],
                                "cwd": "$file_path",
                                "syntax": "Packages/Python/Python.tmLanguage",
                                "external_id": "python",
                                "extend_env": {
                                    "PYTHONIOENCODING": "utf-8",
                                    "SUBLIMEREPL_EDITOR": "$editor"
                                }
                            }
                        }
                    ]
                }
            ]
        }]
    }
]

我猜,对于 R 来说是一样的。

【讨论】:

  • 请不要从其他答案复制和粘贴,即使您链接到它们。如果某个答案解决了另一个问题,您应该将该问题标记为重复问题,或者至少在评论中留下指向相关答案的链接。
  • 对我有用的不是上面答案中提出的“cwd”:“$file_path”,而是“cwd”:“$folder”。你可以在这里找到我的问题的详细描述:stackoverflow.com/questions/45077749/…
猜你喜欢
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-21
  • 2018-02-24
  • 1970-01-01
相关资源
最近更新 更多