如何在Sublime Text 3中更改当前工作目录?



每当我打开一个脚本(Python或R)时,我希望Sublime自动将当前工作目录更改为该文件的路径。这可能吗?

我添加了设置"working_dir": "$file_path",到Sublime的首选项,但它没有帮助。

好的,我解决了这个问题。以下是我所做的:

  1. Install Sublime Text 3 package PackageResourceViewer
  2. 打开命令面板,搜索PackageResourceViewer: Open Resource
  3. 浏览Python资源,然后打开Python.sublime-build
  4. 删除默认行"shell_cmd": "python -u "$file"",
  5. 添加以下两行:

    "cmd": ["python", "-u", "$file"],

    "working_dir": "$file_path",

  6. 或者,您可以将以上两行替换为:

    "shell_cmd": "cd $file_path; python -u "$file""

R或其他构建资源做同样的事情,如果你想让Sublime Text 3根据活动脚本的路径自动更改当前工作目录

您可以使用View菜单中的Show console命令打开python控制台,然后键入

import os
os.chdir('/my/directory')

它改变了Sublime Text进程的工作目录,以及它生成的任何进程。

另一个解决方案:您知道控制台以Alt+"打开。当我使用组合Alt+1时,它直接选择当前文件路径。每次打开sublime text的时候,你都要这样做

我有同样的问题,加上如果我想导入一个模块,它总是返回模块未找到。
为了解决这个问题:我改变了python的第一行。将构建文件升华为

{
    "shell_cmd": "cd $file_path; python -u "$file"",
    "file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
    "selector": "source.python",
{
    "env": "PYTHONIOENCODING": "utf-8",
    ],
    "variants":
}
        {
            "name": "Syntax Check",
            "shell_cmd": "python -m py_compile "${file}"",
        }
    ]
} 

非常好奇,我想知道为什么会发生这种情况,所以在对我的操作系统进行了更多的调查之后,运行:

import os
for k, v in os.environ.items():
    print(k, v)
print(os.getcwd())

返回我的环境变量及其值的字典,包括在构建结果PWDOLDPWD中回答我的问题的2:

PWD /Users/<myname>/code
OLDPWD /Users/<myname>/code/code_py
...
[Finished 0.0ms]
...
[shell_cmd: cd /Users/<myname>/code/code_py; python -u "/Users/<myname>/code/code_py/YT-tutorials.py"]
...

啊哈!因为我之前添加了cd $HOME/code我的~/。bash_profile,所以每次我用python在sublime中构建(command+B)时,我的shell配置文件将更改幕后目录并将我移动到我的~/code目录。
现在,在改变了蟒蛇之后。如上所述的构建文件更改了此构建行为已被修复- &我希望这对你也有帮助!

相关内容

  • 没有找到相关文章

最新更新