在zsh
我当前的(左)提示中如下
PROMPT="%F{106}%22<…<%3~%f%(?..%{$fg[red]%} %?%{$reset_color%})%(1j.%{$fg[cyan]%} %j%{$reset_color%}.)%# "
Run Code Online (Sandbox Code Playgroud)
该%22<…<
指定,当它超过22个字符的提示将被截断。这是因为我不希望提示占用太多的水平空间。
但是,当我有一个非常宽的终端时,我可以在提示上花费 22 个以上的字符,而且我仍然有足够的水平空间可以腾出。
所以,我想格式化提示,使其最大宽度是整个终端宽度的百分比(例如 20%)。有没有办法做到这一点?
理想情况下,如果终端更改宽度,应重新计算提示宽度。
(以防万一:外壳通常tmux
在 MacOS内部)
我想在 tmux 中启用斜体(在 macOS Big Sur 11.3 上的 iTerm2 内)。我通过将其设置为实现了这一点.tmux.conf
set -g default-terminal "tmux-256color"
Run Code Online (Sandbox Code Playgroud)
我已经使用 homebrew 安装了 ncurses 6.2 并将其设置在路径中的第一个位置。.zshrc
:
set -g default-terminal "tmux-256color"
Run Code Online (Sandbox Code Playgroud)
进行这些更改后,斜体就可以使用了。
但是,现在几个依赖于 ncurses 的程序无法启动:ncdu
(1.15.1) 和nano
(2.0.6 ) 都出错:
Error opening terminal: tmux-256color.
Run Code Online (Sandbox Code Playgroud)
我的印象是他们不支持此TERM
设置。奇怪的是, 1.12在我的 Raspbian 计算机上ncdu
运行。tmux-256color
怎么了?程序不是像ncdu
并且nano
应该兼容吗tmux-256color
?
我找到了一个 hacky 解决方法(对于 macOS,在 Raspbian 上不需要)。如果我明确地改回TERM
中的变量.zshrc
,则所有内容(斜体和程序)都有效:
export PATH="$HOMEBREW_PREFIX/opt/ncurses/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
但我的理解是,TERM
自我设定是一个很大的禁忌。您应该让环境正确设置它。我很惊讶它竟然能工作——tmux-256color
与screen-256color
?这个黑客最终会在我脸上爆炸吗?