如何在VSCode中解决$ PATH无法解析的问题

问题描述

最近升级Fedora 30 -> Fedora 31后,我发现当我从VSCode中为正在处理的项目启动终端时,会看到以下消息:

bash: sed: command not found
~/data/Programming/JS/React vgorcinschi $ 

它在抱怨sed,因为我在~/.bashrc中有一个脚本试图在PS1中包含有关git分支的信息:

# somewhere in ~/.bashrc
parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] \u $ "

如果我在同一终端中执行man sed,它将以同样的方式抱怨man。如果我打开系统终端并导航到同一位置,则路径将如下所示:

~ vgorcinschi $ cd ~/data/Programming/JS/React
~/data/Programming/JS/React (ch14) vgorcinschi $ echo $PATH
./node_modules/.bin:/home/vgorcinschi/.nvm/versions/node/v10.6.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/vgorcinschi/.local/bin:/home/vgorcinschi/bin:/home/vgorcinschi/.local/bin:/home/vgorcinschi/bin:/usr/local/java/jdk1.8.0_231/bin:/opt/maven/bin:/snap/bin

NB注意sed是如何在同一目录中工作的。

从VS Code终端重复echo $PATH会产生以下结果:/home/vgorcinschi/data/Programming/JS/React/node_modules/.bin

我认为可能会出现这个问题,所以这些是我的~/.config/Code/User/settings.json的内容:

{
    "git.enableSmartCommit": true,"metals.javaHome": "/usr/local/java/jdk1.8.0_231","window.zoomLevel": 0,"terminal.integrated.shell.linux": "/usr/bin/bash","editor.tabSize": 2,"editor.detectIndentation": false,"terminal.external.linuxExec": "bash"
}

以下内容也可能非常重要。上面的目录在HDD(/dev/sdb1)上的分区上,我的~/.bashrc~/.bash-profile在SSD(/dev/mapper/fedora-home)上。

如果在主分区(在SSD上)中打开带有VS Code的空目录,则Code终端没有此问题。但是在升级之前,我也没有在另一个分区上安装它-这只是两天前。

所以我不确定到底是什么原因造成的,但是希望有人可以帮助我解决这个问题。

更新[2020.10.30] 由于.node_modules中的这些行,~/.bashrc出现在VSCode终端内的路径上:

if [ -d "$PWD/node_modules/.bin" ]; then
        PATH="$PWD/node_modules/.bin"
fi

VS Code版本

Version: 1.50.1
Commit: d2e414d9e4239a252d1ab117bd7067f125afd80a
Date: 2020-10-13T14:44:48.716Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Linux x64 5.8.15-101.fc31.x86_64

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)