如何在为 WSLtty 设置 Solarized 主题时修复 bash 语法错误?

如何在为 WSLtty 设置 Solarized 主题时修复 bash 语法错误?

我正在尝试为 WSLtty 终端设置 Solarized 主题,因此我遵循这份两步指南

我不想安装鱼,所以我只专注于前两个步骤。

但当我跑步时:

eval (dircolors -c ~/.dir_colors | sed 's/>&\/dev\/null$//')

它给了我这个错误:

-bash: syntax error near unexpected token `dircolors'

答案1

我建议你:

  • 按照近 4 年前的指南来设置您的 WSL。WSL 仅有 6 年的历史,在过去几年中发生了很多变化。在此期间,甚至 fish shell 也发生了很大变化(尽管 fish 的变化不是您的问题的一部分)。

  • 尝试“跳过某些步骤”,例如使用 fish shell。该指南显然是针对 fish 编写的,并且正如评论中指出的那样,至少该命令是用 fish 语法编写的,而不是 Bash/POSIX。

  • 在 AskUbuntu.com 上询问有关 WSLtty(一个 Windows 程序)的问题。我们确实认为只要与 Ubuntu 相关,WSL 问题就属于主题,但您会发现这里的 Ubuntu 专业知识比 WSL 多得多,而 WSLtty 上的知识就更少了。

    话虽如此,如今 WSLtty 方面的专业知识可能在大多数地方都很短缺。这是 4 年前情况大不相同的另一个副作用。当时,我使用 WSLtty,认为它是 WSL 的最佳终端选项,并且可以提供帮助。


因此,让我提出一些替代方案,因为我无法在 WSLtty 上帮助您(并且很可能 Ask Ubuntu 上也没有人可以为您提供帮助):

首先,虽然 WSLtty 在当时非常棒,但现在 WSL 世界的大部分已经向前迈进了Windows 终端已经存在了几年。Windows Terminal 是:

  • 来自 Microsoft
  • 开源(Github 仓库
  • 能够在启动时自动检测和配置 WSL(以及 PowerShell、CMD、Git Bash 等)的配置文件
  • 积极开发
  • 旨在替代旧版 Windows 控制台主机(在 Windows 10 中默认情况下从开始菜单在 WSL 中运行“Ubuntu”时启动的终端)。
  • 可配置为 Windows 11 中的默认终端
  • 功能丰富:选项卡式、可配置的键绑定,具有内置配色方案(包括阳光照射下的光明与黑暗)等等。

明白最后一部分了吗?Windows Terminal 默认包含 Solarized 主题。您可以通过以下方式轻松切换:

  • 更改默认设置外貌所有终端配置文件的设置
  • 改变外貌特定配置文件的设置
  • 从具有特定配色方案的命令行开始
  • Ctrl+ Shift+P调出命令面板,搜索“配色方案”并通过 GUI 选择它。
  • 直接创建键绑定以将配色方案切换为您喜欢的配色方案

唯一缺少的似乎是一种从命令行执行此操作的内置方法。当然,可以通过创建一个实用程序来settings.json直接修改,因为 Windows 终端会自动检测更改。它只是没有内置。


您可能需要也可能不需要该dircolors方案。首先,请先尝试使用顶级 Solarized 主题。如果您确实想使用该dircolors配色方案,您可以在该项目的Github 自述文件。看起来简单:

eval `dircolors /path/to/dircolorsdb`

请注意使用反引号进行命令替换不鼓励(礼貌这个答案),因此我建议:

eval $(dircolors /path/to/dircolorsdb)

当然,要调整您要切换的主题的名称。


附注:我自己很喜欢 fish shell,但我建议新手先学习更符合 POSIX 标准的 shell。fish shell 语法是不是符合 POSIX 标准;换句话说,它无法在其他 shell 中运行,并且其他 shell 的标准语法(通常)需要进行调整才能在 fish 中运行。

尽管如此,这种不兼容是有充分理由的。主观上,fish shell 语法是优于(或至少与 POSIX 一样好,在 95% 以上的情况下)——有时很多比。然而,有时缺少鱼类特征会让事情更加困难

(最终)学习并了解这两者的好处是,bash当您需要回到“标准”语法时,您始终可以在 fish 内部运行脚本。

换句话说,您现在通过“跳过” fish 可能做了正确的事情,但是当您在 Linux 中感觉更舒服时,请回来检查一下。


附注/建议 #2:查看exa,是 的现代替代品ls。默认情况下,它的“颜色”更加丰富。

相关内容