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

问题描述 投票:-2回答:1

我正在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

问题发生在我的路很长时,它看起来像在第二行或第三行上这样折断了:

enter image description here

我试图将列数(增加到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|
terminal command-prompt iterm2 ps1
1个回答
0
投票

停止iTerm2上的自动换行仍然是open feature request。因此,如果您的行太长,恐怕它会自动被自动换行。

但是,您可以构建PS1,以便通过向下修剪路径来避免线路溢出。

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

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

An example of zsh trimming paths

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

© www.soinside.com 2019 - 2024. All rights reserved.