who*_*ver 6 shell zsh environment-variables
在$HOSTNAME
为您设置的 Bash 中,我只需使用以下内容即可计算提示行的总长度:
PS1_length=$((${#USER}+${#HOSTNAME}+${#PWDNAME}+12+${#PS1_GIT}))
这很有用,例如在创建这样的填充线时:
但是zsh
无法$HOSTNAME
正确设置,我想不出一种方法来模拟其中的类似行为 - 有什么想法吗?
zsh
提示扩展使您无需进行任何计算即可执行该提示:
PS1='%$COLUMNS>?>%F{cyan}??%F{red}[%n]%F{cyan}:%F{yellow}[%m]%F{cyan}?%F{green}[%~]%F{default}$PS1_GIT%F{cyan}${(l:COLUMNS::?:):-}%<<
???%F{default}'
Run Code Online (Sandbox Code Playgroud)
解释:
%$COLUMNS>?>
: 右截断到$COLUMNS
(由zsh
终端宽度动态设置的变量)直到下一个%<<
.%F{color}
: 设置前景色%n
, %m
, %~
: 用户名、机器名(主机名到第一个点)、当前目录和~
-named-dirs。${(l:COLUMNS::?:):-}
:用字符左填充空字符串 ( ${:-}
) 到$COLUMNS
长度?
。%m
就像${HOST%%.*}
. 如果您需要完整的主机名 ( $HOST
),请%M
改用。
你应该只设置
HOSTNAME=$(hostname)
Run Code Online (Sandbox Code Playgroud)
在你的 ~/.zshrc
或者正如 Caleb 指出的那样,有一个变量 HOST 集,因此为了保持提示可移植,您还可以执行以下操作:
HOSTNAME=$HOST
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19584 次 |
最近记录: |