如何在 macOS 上创建 bash/zsh 状态栏

如何在 macOS 上创建 bash/zsh 状态栏

我希望所有关于工作环境的信息:git 分支、virtualenv 的名称、当前文件夹始终显示在终端窗口的第一行。在我看来,它应该是这样的:

[git branch](virtualenv)user@host:<pwd> # this part shouldn't move
...
here is standard terminal output
$ # last line for writing commands

有可能吗?如果可以,我该如何实现?

答案1

对于zsh,只需将其添加到您的.zshrc文件中:

zmodload zsh/terminfo
autoload -Uz add-zsh-hook
statusbar () {
  echoti sc                   # Save cursor position.
  echoti home                 # Move cursor to top left of window.

  # -n: Don't append a newline.
  # -P: Expand prompt escape codes.
  print -nP -- "[$( git branch --show-current 2> /dev/null )]($VIRTUAL_ENV)%n@%M:%~"

  echoti el                   # Clear to end of line
  echoti rc                   # Restore cursor position.
}
add-zsh-hook precmd statusbar # Call before each new prompt.

相关内容