【问题标题】:Changing the VSCode integrated shell's prompt on MacOS X在 MacOS X 上更改 VSCode 集成 shell 的提示
【发布时间】:2017-06-21 21:44:09
【问题描述】:

刚刚安装了 VScode,我注意到它在 OSX 上默认使用 Bash,shell 的默认提示符为 bash-3.2$;因此,我看不到当前的工作目录。这意味着必须经常输入“pwd”和“ls”,这显然很乏味。

我已尝试将设置中的默认 shell 更改为

"terminal.integrated.shell.osx": "/Applications/Utilities/Terminal.app" 

"terminal.integrated.shell.osx": "/Applications/iTerm.app"

这好像不行,我这里是不是搞错了?

我也想知道我是否仅限于 bash,我可以将其配置为显示工作目录而不是简单的 bash-3.2$ 吗?

看到这个screenshot of how the VSCode integrated terminal looks by default 提前致谢!

【问题讨论】:

  • (也就是说,很容易修改你的提示来设置一个 PS1 来显示你的目录;参见例如apple.stackexchange.com/questions/28739/…
  • ...标准提示符,显示主机名和工作目录,是PS1='\h:\W \u\$'——如果你点击链接,他们有修改你的~/.bashrc的指导来控制哪个是显示。
  • ...实际上,在这里等一下。如果这是关于 VSCode 而不是 MacOS 终端的问题,那么它就是主题。在问题的标题中强调这一点可能会有所帮助。普通终端应用程序有这个问题,还是只有 VSCode 有这个问题?
  • (...要清楚,如果您只遇到 VSCode 的问题,这意味着它启动的 shell 没有读取您的点文件,这为我们提供了调查的途径)
  • 顺便说一句,澄清一点:终端不是外壳。如果您启动终端窗口,终端将运行一个单独的程序——一个外壳程序——并呈现该程序的输出并为其收集输入。如果 VSCode 期望 terminal.integrated.shell.osx 指向一个 shell,那么它需要一个实际的 shell——从 stidn 读取用户输入并将输出写入 stdout 的东西——而不是启动窗口并显示此类程序的输出的东西。默认情况下,终端启动的那个单独的 shell 是 bash。

标签: bash macos terminal visual-studio-code


【解决方案1】:

您可以通过定义PS1 将提示设置为包含当前工作目录,如下所示:

PS1="\w $"

$ 只是一些视觉上的糖。有各种各样的东西你可以有你的提示显示。将定义放在您的~/.bashrc~/.profile 中,以便在您登录时设置。

查看 GNU Bash 手册的Controlling the Prompt 部分了解详细信息。

如果您不习惯编辑 bash 初始化文件,您可以使用 Visual Studio Code 进行编辑,方法是转到 View->Command Palette 并执行以下命令(仅限一次性):

Install 'Code' command in path

然后打开集成终端并输入以下内容:

code ~/.bashrc

然后将PS1 定义添加到该文件的底部。

【讨论】:

  • 问题(如果它是主题,作为关于常规 bash 配置的问题将属于 SuperUser 或 Ask Different)是关于在 VSCode 启动的 shell 中更改 PS1。您是建议 OP 手动更改正在使用的 shell,还是有办法让 VSCode(不是 MacOS 终端)自动使用非默认 PS1?
  • 这个问题是在 VSCode 的上下文中提出的,但问题似乎是 bash 提示。可能是我遗漏了一些东西,但是他更改默认终端应用程序的示例似乎不能解决更改 bash 提示的提示问题,并且他经常提到 pwdls 命令给了我给人的印象是他不是bash savvy,这就是为什么我以我的方式回应。
  • 他们还表明他们正在尝试将其默认 shell 更改为终端 - 忽略 shell 和终端之间的合并,这相当强烈地暗示终端以他们希望的方式显示提示,并且这个问题是 VSCode 特有的。
  • (...我猜 VSCode 没有调用 bash 作为登录 shell,也许,所以他们的 .bash_profile 没有被执行?虽然 PS1 配置正确地属于 .bashrc ,所以不应该有所作为)。
  • 我是一个新的 VSCode 用户,但是当我调用集成终端时,我得到了一个带有我的登录提示和个人别名等的登录 shell。
【解决方案2】:

我使用的是 Ubuntu,并且只在~/.bashrc 的末尾添加以下几行:

if [ "$TERM_PROGRAM" = "vscode" ]; then
  PS1='\$ '
fi

试一试,如果它适用于您的操作系统,请告诉我。

【讨论】:

    猜你喜欢
    • 2020-02-24
    • 1970-01-01
    • 2022-09-30
    • 2017-08-11
    • 2021-11-18
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多