VSCode 中的集成终端不允许我使用 zsh

问题描述 投票:0回答:1

我在 Pop!_OS 22.0.4 上运行 VSCode 1.87.2,内核版本 6.6.10-76060610-generic

已更新

许多命令(例如

sudo
apt
docker
)在 VS Code 的集成 shell 中不起作用。回复示例:
bash: sudo: command not found

当我输入完整路径说

apt
时,我得到:

$ mmurphy@pop-os:~$ /usr/bin/apt
$ bash: /usr/bin/apt: No such file or directory

集成终端 (VSCode) 无法识别在独立终端应用程序中工作的命令

我最近重新安装了操作系统,除了 VS Code 和 Chrome 之外,我没有安装任何其他东西。

注意在我获得新硬件并安装 22.0.4 之前,我一直在使用 21,它是我的主要开发环境,所以我使用集成 shell 很长一段时间。

visual-studio-code terminal zsh
1个回答
0
投票

VSCode 中关于此问题的报告并不多,除了 issue 207117:“1.87.1 版本发布后,用户定义的 PATH 不再源自远程 ssh 会话”。

从您在聊天

中共享的图像来看,很明显,当从 VSCode 外部的 shell 调用时,packer 可以正常工作,并且您已经通过显示

which packer
/usr/bin/packer
验证了其位置。该权限似乎也是正确的。
首先测试

.bashrc

.zshrc
或任何其他相关的启动脚本是否已正确获取(添加回显以跟踪其激活)。
打开首选项 (
Preferences: Open Settings (JSON)
) 并查找
terminal.integrated.env.linux
terminal.integrated.shellArgs.linux
设置。可能有一些环境配置会覆盖默认行为。
此外,禁用任何可能与终端环境交互的 VSCode 扩展,然后重新启动 VSCode 以查看问题是否仍然存在。

检查您的

Terminal: Select Default Profile

,并确保选择了正确的外壳配置文件(例如,

bash
zsh
)。
在集成终端和独立终端中,运行

env | sort

并比较输出,看看环境变量是否存在差异。

有时,强制 shell 作为 VSCode 中的登录 shell 运行可以确保所有启动文件的来源正确:修改 VSCode 中的 

terminal.integrated.shellArgs.linux

设置以包含

-l
(例如,
["-l"]
表示 bash 或 zsh)。
    

© www.soinside.com 2019 - 2024. All rights reserved.