【问题标题】:iTerm2 : Path into PS1 prompt is broken (\n) on different lines when it is too longiTerm2:当 PS1 提示的路径太长时,不同行上的路径会损坏(\n)
【发布时间】:2020-04-01 04:46:00
【问题描述】:

我在 MacOS Catalina 上使用 iTerm2。这是我的PS1~/.bashrc,使用函数ps1

function ps1 {
        # PROMPT SECTION
        BLUE='\[\033[0;34m\]'
        LIGHT_CYAN='\[\033[1;36m\]'
        DEFAULT='\[\033[0m\]'
        PURPLE='\[\033[0;35m\]'
        LIGHT_PURPLE='\[\033[1;35m\]'
        LIGHT_GREEN='\[\033[0;32m\]'
        PINK='\[\033\[0;31m\]'


        # \! - History number of last command
        # $? - Exit value of last command
        # \t - Exit time of last command
        # \w - Current directory (relative)

PS1="$PURPLE|$DEFAULT$LIGHT_GREEN\u@$DEFAULT$LIGHT_CYAN\h$DEFAULT$PURPLE|$DEFAULT\t$PURPLE|$DEFAULT$LIGHT_PURPLE\w$DEFAULT$PURPLE|$DEFAULT "
}

ps1

当我的路径很长时会出现问题,它似乎在第二行或第三行被打破,如下所示:

我尝试将列数(增加到 1000)增加到 iTerm2 -> Preferences,但似乎无法解决此问题。

我看不出错误来自哪里。可能有什么问题?

  fab@astro|13:12:32|~/Phd_2019_2020/Travail_2_faire_varier_Omega_DE_sur_CAMB_et_regarder_si_les_P_k_changent_21_Octobre_2019/Main_Directory_Work/TSAF_lvl_up_Derivatives_15_points_on_Cl_stabilite_Code_is_surel
y_VALIDATED_for_15_points_derivatives_AND_After_trying_to_solve_the_pathologic_zone_1e-5_TO_1e-2_13_Novembre_2019/Test_FAIRE_VARIER_TOUS_LES_PARAMETRES_AVEC_les_2_pas_2e-2_et_1e-1_AVEC_Takabird_SECONDE_TENTATIVE_AVEC_LA_VAR        IATION_de_wde_EN_FLAT_DANS_Camb_launcher_6_DECEMBRE_2019/CAMB_der_3_pts/fortran|

更新

终于在this link找到了解决办法。

【问题讨论】:

  • 请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How To Ask
  • @Rob 但我无法用文字说明问题,很难重现,所以这就是我使用图像的原因。问候
  • 您的图片文字。你怎么能不说明问题?!
  • 我看不懂broken你能指出图片中的哪个位置,或者是哪个特定字符
  • 哦,我明白了,这不是错误,它只是显示长文本,在可能的情况下会中断(我认为在这种情况下它符合第一个空格),并且有时与 shell 相关的中断规则.

标签: terminal command-prompt iterm2 ps1


【解决方案1】:

在 iTerm2 上停止自动换行仍然是 open feature request。所以我担心如果你的行太长,无论如何它都会自动换行。

但是,您可以构建您的 PS1,以便通过向下修剪路径来使线条不会溢出。

为此,如果您想手动执行此操作,则需要使用命令tput cols 来获取终端上的列数,或者只使用there 中的答案之一。

如果您愿意将 shell 从 bash 更改为 zsh,zsh 中的许多它们会修剪路径,以免它们溢出行。

this answer 中给出的另一个解决方案是使用命令tput rmam 丢弃溢出的输出,然后使用tput smam 重新启用包装

【讨论】:

    猜你喜欢
    • 2016-12-30
    • 2021-06-12
    • 2011-11-02
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2012-11-22
    相关资源
    最近更新 更多