如何从 IntelliJ IDEA 的 bash 设置 SBT 以避免格式化字符被破坏?
Posted
技术标签:
【中文标题】如何从 IntelliJ IDEA 的 bash 设置 SBT 以避免格式化字符被破坏?【英文标题】:How to setup SBT from bash from IntelliJ IDEA to avoid formatting characters being broken? 【发布时间】: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)中的任何一个设置(环境变量或配置文件),以便我看不到这些格式字符被误解了吗?如果它们能起作用并影响格式,那将是一个不错的奖励,但这对我来说不太重要。
智能:
独立:
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何从 IntelliJ IDEA 的 bash 设置 SBT 以避免格式化字符被破坏?的主要内容,如果未能解决你的问题,请参考以下文章
sh 用于将多个IntelliJ IDEA(或其他JetBrains IDE)语法颜色主题组合到单个jar文件中的Bash脚本
如何让 IntelliJ IDEA 从 Maven 更新我的依赖项?
如何阻止 IntelliJ IDEA 从 .properties 文件中删除空行?
如何从 IntelliJ IDEA 向远程 Spark 集群提交代码