集成终端

时间:2018-05-18 12:56:56

标签: visual-studio-code

我在OSX High Sierra的iTerm2中使用内部版本和zsh与ohmyzsh。

如果我在VSCode echo $path中启动集成命令行,则返回:

/Users/username/.yarn/bin:/Users/username/.cargo/bin:/usr/bin:/usr/bin/lldb:
/Users/username/bin:/usr/local/bin:/Users/username/.scripts:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

显然,节点路径,nvm路径等都丢失了,所以终端对我没什么用。

但是在VSCode之外的终端中键入echo $path会返回:

/Users/username/.nvm/versions/node/v9.0.0/bin /Users/username/.yarn/bin
/Users/username/.cargo/bin /usr/bin /usr/bin/lldb /Users/username/bin
/usr/local/bin /Users/username/.scripts /usr/local/bin /usr/bin /bin /usr/sbin
/sbin /opt/X11/bin

我的开发活动需要所有路径。

我在~/.zshrc

中有这个别名
code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCodeInsiders" --args $* ;}

如果我使用来自外部终端的别名启动代码,则节点路径是正确的。

据我所知,这是因为从Dock快捷方式加载代码并不会使用我的用户配置文件加载终端,因此它会从/etc/zprofile加载配置文件,而使用{/usr/libexec/path_helper设置路径1}}所以它错过了我开发所需的所有重要路径。

我怀疑大多数人都希望使用其用户个人资料中的设置。这意味着我们所有的开发应用程序都可以在集成终端上运行,也可以通过不正确的路径设置导致臭名昭着的nvm is not compatible with the npm config "prefix" option错误结束。

从Dock启动时,如何让VSCode在我的用户配置文件中使用终端环境?

2 个答案:

答案 0 :(得分:0)

转到设置并编辑集成终端

// Object with environment variables that will be added to the VS Code process to be used by the terminal on OS X
  "terminal.integrated.env.osx": {},

你可以传入你的变量

答案 1 :(得分:0)

vscode文档还提供了针对警告nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"的解决方案:

https://github.com/Microsoft/vscode-docs/blob/master/docs/editor/integrated-terminal.md#why-is-nvm-complaining-about-a-prefix-option-when-the-integrated-terminal-is-launched

从文档中

  

这主要是macOS问题,不会在外部发生   终端。造成这种情况的典型原因如下:

     

npm是使用node的另一个实例进行全局安装的,该实例是   路径中的某处(例如/usr/local/bin/npm)。为了得到   $PATH上的开发工具,VS Code将启动bash登录   外壳启动。这意味着您的~/.bash_profile已经   运行,当集成终端启动时,它将运行另一个   登录外壳程序,可能以意外的方式对$PATH进行重新排序。至   要解决此问题,您需要跟踪旧的npm在哪里   安装并删除它及其过时的node_modules。您可以   为此,请找到nvm初始化脚本并运行which npm   在它运行之前,它应该在您启动新路径时打印路径   终端。

     

一旦有了npm的路径,就可以通过以下方式找到旧的node_modules   通过运行类似以下的命令来解决符号链接:

     

ls -la /usr/local/bin | grep npm

     

这将为您提供最后的解析路径:

     

... npm -> ../lib/node_modules/npm/bin/npm-cli.js

     

从那里删除文件并重新启动VS Code应该可以解决此问题:

     

rm -R /usr/local/bin/npm /usr/local/lib/node_modules/npm/bin/npm-cli.js