暂时隐藏ZSH shell命令行中的路径栏?

暂时隐藏ZSH shell命令行中的路径栏?

除了在某些配置文件中永久禁用它之外,是否有一些快捷方式或其他东西可以在命令提示符之前切换目录路径的可见性以暂时隐藏它?

我的意思是,当完整路径很长时,ZSH 似乎会缩写目录名称,但似乎它只对当前目录的父目录这样做,并且当当前目录的名称很长时,我几乎没有空间来键入命令。

在此输入图像描述

答案1

您可以在您的~/.zshrc

realPS1="$PS1"
changed=false

changePS1() {

   $changed && {

      PS1="%n (normal) in %~> "
      #Or
      PS1="$realPS1"

      changed=false
      : # <-- It might be not necessary add this `:`. This one 
        #represents a zero-status code (or successful).  

   } || {
      PS1="%n (hidden)> "
      changed=true
   }
}

bindkey -s "^H" 'changePS1^M'

上面的代码将创建一个快捷方式(使用bindkey)来 Ctrl + H 执行该changePS1函数。所以基本上 Ctrl + H 所做的就是启用hidden提示,当您 Ctrl + H 再次按下时将启用normal提示。

关于$PS1你应该分配的值根据您的需求。例如,此行PS1="%n (normal) in %~> "显示如下提示:

edgar (normal) in ~/Documents/Gitlab/Linux_programming>

其中%n是用户名和%~我当前工作目录的相对路径。

但是,您可以备份真实的$PS1(行realPS1="$PS1")并使用该行PS1="$realPS1"而不是PS1="%n (normal) in %~> "

PS1="%n (hidden)> "会显示以下提示:

edgar (hidden)>

因此,您应该PS1使用自定义提示分配变量,但不必使用%~以避免打印路径。

相关内容