ZSH 和 VSCode - 默认 Shell

26

我已经开始为VSCode设置ZSH。它一开始工作了一小段时间,但后来改变成了Git Bash(我的以前默认外壳)。我尝试把外壳改回ZSH,但它没有显示在选项列表中。然而,它显示了WSL,它显示了完全不同的主题。

我的主题(在Windows终端、Ubuntu等):
我的主题
在VSCode中的主题:
WSL默认主题

我尝试将这个添加到我的settings.json:

"terminal.integrated.shell.windows": "/bin/zsh",

但它说:“终端进程启动失败:shell可执行文件路径“\bin\zsh”不存在。”

我该如何修复这个问题(将默认的shell切换回ZSH)?


你尝试过类似这样的东西吗? "terminal.integrated.shell.windows": "wsl.exe -d Ubuntu-20.04 -e /bin/zsh" - Umair Khan
4个回答

47

尝试which zsh以确认您的zsh可执行文件的路径。可能存在路径错误。

which zsh

或者尝试使用GUI方式。

  1. 打开命令面板

Windows - Ctrl + Shift + P

Mac - + Shift + P

  1. 搜索Terminal: Select Default Shell并选择它。

Command Palette

  1. 查看可用shell列表并选择一个。如果在这里看不到zsh,则可能与zsh存在一些配置问题。

Available Shells

也有可能zsh的安装/配置错误导致了您在settings.json文件中的输入无效。选择shell后,按ctrl + ~ + J打开终端窗口并查看结果。如果您已经打开了终端,则必须将其删除或打开另一个终端。

您还可以打开settings.json,直接查看或添加以下条目。

// Edit July 2021 - New Updated Snippet
"terminal.integrated.defaultProfile.osx": "zsh"

// Now deprecated
"terminal.integrated.shell.osx": "/bin/zsh"

8
terminal.integrated.shell.osx 被弃用,使用 terminal.integrated.defaultProfile.osx 替代(从 shell 改为 defaultProfile),但新规则默认使用 bash(在本文发布时)。 - kawerewagaba
1
成功了!谢谢。在我的Ubuntu上的VS Code中,命令是:终端:选择默认配置文件。 - Tanyo Ivanov
编辑 settings.json 然后重新启动代码对我有用。谢谢。 - Brian Birtle
我在Ubuntu系统中没有/bin/zsh这个目录,你知道为什么吗?我该如何添加它? - undefined

28

看起来在Mac上有些微小的改变。

Mac - + Shift + P

输入“Terminal: Select Default Profile”,然后选择它。

输入图像描述

之后你会看到这个:

选择图像描述

选择bash或其他,然后必须关闭并重新启动VS Code。


不仅适用于Mac,而是适用于所有系统。终端现在具有配置文件和特定于操作系统的设置。 - its4zahoor

16
这是解决方案: terminal.integrated.shell.osx已被弃用,应使用terminal.integrated.defaultProfile.osx(从shell改为defaultProfile),但新规则默认使用bash(在此帖子发布时)。 实际情况是这样的:(通过GUI获得)——这是路径的问题。 terminal.integrated.defaultProfile.osx确实可行,但值必须从/bin/zsh更改为zsh。 因此,设置应该是"terminal.integrated.defaultProfile.osx": "zsh"而不是"terminal.integrated.defaultProfile.osx": "/bin/zsh"。 还要注意语言从默认shell更改为defaultProfile

这已经在工作了吗?因为zsh配置文件出现了,但除非我使用不推荐的命令,否则它会将bash作为第一个选项打开。 - Chompas
它正在工作。不确定您的确切挑战是什么,但我注意到我必须关闭并重新打开所有终端实例以在更改后将它们全部默认为bash - 但之后一切都正常工作。 - kawerewagaba
defaultProfile 救了我 :) - Sorush

6

打开 "~/.config/Code/User/settings.json" 文件

根据你的操作系统添加默认的shell:

"terminal.integrated.defaultProfile.linux": "zsh"
"terminal.integrated.defaultProfile.osx": "zsh"
"terminal.integrated.defaultProfile.windows": "zsh"

1
对我来说,这是设置的路径:/Library/Application Support/Code/User/settings.json - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接