Zsh

在 ZSH shell 命令行中暫時隱藏路徑欄?

  • October 18, 2022

除了在某些配置文件中永久禁用它之外,是否有一些快捷方式或其他東西可以在命令提示符之前切換目錄路徑的可見性以暫時隱藏它?

我的意思是,ZSH似乎在全路徑長時會縮寫目錄名稱,但似乎只對目前目錄的父目錄這樣做,而噹噹前目錄的名稱很長時,我輸入命令的空間很小.

在此處輸入圖像描述

你可以在你的~/.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(line realPS1="$PS1") 並使用該 linePS1="$realPS1"而不是PS1="%n (normal) in %~> "

關於PS1="%n (hidden)> "這將顯示以下提示:

edgar (hidden)>

因此,您應該PS1使用自定義提示分配變數,但不必使用%~以避免列印路徑。

引用自:https://unix.stackexchange.com/questions/721389