【问题标题】:How to setup SBT from bash from IntelliJ IDEA to avoid formatting characters being broken?如何从 IntelliJ IDEA 的 bash 设置 SBT 以避免格式化字符被破坏?
【发布时间】:2019-05-19 20:10:13
【问题描述】:

在 Windows 上运行时,我已将 IntelliJ IDE 中的默认终端从默认 Windows cmd 更改为 bash(我使用的是与 Git 一起安装的终端,位于 C:\Program Files\Git\bin\bash.exe)。它工作得很好,唯一的问题是从终端运行sbt 时,会显示一些奇怪的字符(我假设它们是一些用于格式化输出的控制字符)。

当我直接从 Windows 中作为独立窗口启动的 bash 运行 sbt 时,不会发生这种情况。

我可以更改所涉及的三个组件(sbt、IntelliJ、bash)中的任何一个设置(环境变量或配置文件),以便我看不到这些格式字符被误解了吗?如果它们能起作用并影响格式,那将是一个不错的奖励,但这对我来说不太重要。

智能:

独立:

【问题讨论】:

    标签: bash intellij-idea terminal sbt


    【解决方案1】:

    sbt 默认为控制台输出着色,这在 Windows 上不起作用,但启动器脚本可能不会禁用 IntelliJ 终端脚本中的代码。

    您可以通过将-Dsbt.log.noformat=true 传递给 sbt 来禁用颜色

    【讨论】:

    • 这些设置是否可以写入一些配置文件,这样我每次从 bash 调用 sbt 时都不必输入这个?
    【解决方案2】:

    如果您将以下内容添加到您的 .bashrc 文件中,您可以保留颜色和格式:

    sbt() {
        /c/progra~2/sbt/bin/sbt.bat "$@"
    }
    export -f sbt
    

    .bashrc 可以在您的 %USERPROFILE% 目录中找到(或创建),例如C:\Users\{用户名}\.bashrc.

    如有必要,替换为 sbt.bat 的不同路径,但必须不包含空格。

    之后重启你的终端,或者运行source ~/.bashrc。

    这会导出一个 bash 函数,该函数会导致“sbt”运行 sbt 批处理文件启动器,而不是原本会运行的 shell 脚本启动器。批处理启动器显然在处理 Windows 上的输出方面做得更好。 (我也将它用于从 Bash 调用时以其他方式失败的 gcloud 和 gsutil 命令。)

    【讨论】:

      【解决方案3】:

      找到sbtopts文件(Windows location默认为C:\Program Files (x86)\sbt\conf)并确保它包含以下行并且没有被注释掉:

      -no-colors

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-04
        • 2018-05-07
        • 1970-01-01
        • 2023-04-05
        • 2023-03-28
        • 1970-01-01
        • 2014-02-21
        • 2017-08-24
        相关资源
        最近更新 更多