小编Kla*_*urn的帖子

如何配置 zsh prompt 使其长度与终端宽度成正比

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内部)

prompt zsh terminal

7
推荐指数
2
解决办法
4088
查看次数

TERM=tmux-256color 导致“打开终端时出错”

我想在 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-256colorscreen-256color?这个黑客最终会在我脸上爆炸吗?

terminal tmux ncurses terminfo macos

4
推荐指数
1
解决办法
3999
查看次数

标签 统计

terminal ×2

macos ×1

ncurses ×1

prompt ×1

terminfo ×1

tmux ×1

zsh ×1