Terminal iTerm2:PS1提示符的路径太长时,会在不同的行上断开(\n)

Terminal iTerm2:PS1提示符的路径太长时,会在不同的行上断开(\n),terminal,command-prompt,iterm2,ps1,Terminal,Command Prompt,Iterm2,Ps1,我正在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

我正在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
当我有一条很长的路时,问题就发生了,它似乎在第二行或第三行被打断,如下所示:

我试图增加
iTerm2->Preferences
中的列数(到1000),但似乎没有解决这个问题

我看不出这个错误是从哪里来的。可能有什么问题

  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|
更新
终于在上找到了解决方案。

停止iTerm2上的单词包装仍然是一个难题。所以我担心如果你的线太长,它会自动包装

但是,您可以构建PS1,这样通过向下修剪路径,线路就不会溢出

为此,如果要手动获取终端上的列数,或者只使用中的一个答案,则需要使用命令
tput cols

如果您愿意将shell从bash更改为zsh,那么zsh中的许多主题都会修剪路径,以免溢出行


中给出的另一个解决方案是使用命令
tput rmam
放弃溢出的输出,然后使用
tput smam
重新启用换行,在iTerm2上停止换行仍然是一个问题。所以我担心如果你的线太长,它会自动包装

但是,您可以构建PS1,这样通过向下修剪路径,线路就不会溢出

为此,如果要手动获取终端上的列数,或者只使用中的一个答案,则需要使用命令
tput cols

如果您愿意将shell从bash更改为zsh,那么zsh中的许多主题都会修剪路径,以免溢出行


中给出的另一个解决方案是使用命令
tput rmam
放弃溢出的输出,然后使用
tput smam

重新启用包装,不要发布代码、数据、错误消息等的图像-将文本复制或键入问题中@但是我不能用文字来说明这个问题,因为文字很难复制,所以我使用了图像。Regardsy您的图像是文本。你怎么能不说明这个问题?!我不明白破碎的你能指出图像中的什么地方,或者哪个特定字符吗?哦,我明白了,这不是错误,它只是显示长文本,可能的时候它是破碎的(我认为在这种情况下它满足第一个空格),以及有时与shell相关的破碎规则。不要发布代码、数据、错误消息的图像,等-在问题中复制或键入文本@但是我不能用文字来说明这个问题,因为文字很难复制,所以我使用了图像。Regardsy您的图像是文本。你怎么能不说明这个问题?!我不理解
中断的
你能指出图像中的哪个位置,或者哪个特定字符吗?哦,我明白了,这不是一个错误,它只是显示长文本,可能的话它是中断的(我认为在这种情况下它满足第一个空格),中断规则有时与shell相关。