Directory 如何更改升华文本3中的当前工作目录?

Directory 如何更改升华文本3中的当前工作目录?,directory,settings,sublimetext3,preferences,cwd,Directory,Settings,Sublimetext3,Preferences,Cwd,每当我打开一个脚本(Python或R)时,我希望Sublime自动将当前工作目录更改为该文件的路径。可能吗 我添加了设置“working\u dir”:“$file\u path”,以提升首选项,但没有帮助 好的,我解决了这个问题。以下是我所做的: 安装Sublime Text 3软件包PackageResourceViewer 打开命令调色板,搜索PackageResourceViewer:Open Resource 浏览到Python资源,然后打开Python.sublime build 删

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


我添加了设置
“working\u dir”:“$file\u path”
,以提升首选项,但没有帮助

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

  • 安装Sublime Text 3软件包
    PackageResourceViewer
  • 打开命令调色板,搜索
    PackageResourceViewer:Open Resource
  • 浏览到
    Python
    资源,然后打开
    Python.sublime build
  • 删除默认行“shell\u cmd”:“python-u\”$file\”,
  • 添加以下两行:

    “cmd”:[“python”、“-u”、“$file”],

    “工作目录”:“$file\u path”,

  • 或者,您可以将上述两行替换为:

    “shell\u cmd”:“cd$file\u路径;python-u\”$file\”


  • 如果您希望Sublime Text 3根据活动脚本的路径自动更改当前工作目录,请对
    R
    或其他构建资源执行相同的操作。

    您可以使用“视图”菜单中的“显示控制台”命令打开python控制台,然后键入

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

    它会更改Sublime文本进程的工作目录以及它产生的任何进程。

    另一个解决方案:您知道控制台是用Alt打开的+“。当我使用Alt+1组合时,它直接选择当前文件路径。这种方式是每次打开sublime文本时都必须执行的操作。

    我也遇到了同样的问题,另外,如果我想导入模块,它总是会返回找不到的模块
    要解决此问题:我将python.sublime-build文件的第一行更改为下面的内容

    {
        "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())
    
    它返回我的环境变量及其值的字典,包括2个在构建结果
    PWD
    OLDPWD
    中回答了我的问题:

    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"]
    ...
    
    PWD/Users//code
    OLDPWD/Users//code/code\u py
    ...
    [完成0.0毫秒]
    ...
    [shell\u cmd:cd/Users//code/code\u py;python-u”/Users//code/code\u py/YT tutorials.py”]
    ...
    
    啊哈! 因为我之前添加了
    cd$HOME/code
    my~/.bash_配置文件,所以每次我用python用sublime构建(command+B)时,我的shell配置文件都会在幕后更改目录,并将我移动到我的~/code目录中

    现在,在如上所述更改了python.sublime-build文件之后,此构建行为已得到修复-&我希望这也能帮助您

    这是一个构建系统设置;它不会在常规首选项中做任何事情。如果您的目的是确保python脚本的工作目录与其所在位置相同,则需要将该行添加到默认python构建文件中。作为第三个选项。让shell_cmd保持原样,只是将working_dir添加到字典中,这对我很有用。但是,尝试在命令中使用“cd”的方法失败,表示“文件名、目录名或卷标语法不正确。”(在Windows上)。不清楚为什么,因为我有正确的路径。无论如何,使用_dir似乎是更好的方法。我在基于Unix的系统(MacOSX)上工作过,这就是它工作的原因。在Windows中,我认为应该将“cd”改为“dir”。对于需要升华自动更改目录的问题,这不是一个正确的解决方案