当我使用tmux
并输入超过该行的命令时,它无法重绘上一行。它只是清除当前行,我看不到我刚刚写的内容。它只重绘第一行。
当我按下up并且最后一个命令不适合当前行(我只看到最后一行)时,也会发生这种情况。如果我再按up和down,我可以看到命令的所有行。
我不确定是什么导致了这个问题,但这很烦人。它必须对我的提示做些什么吗?以防万一,这里是:
export PS1="%{$fg[blue]%}%n%{$reset_color%}@%{$fg[green]%}%m %{$fg[yellow]%}%~ %{$reset_color%}% "
export PS2=$_>
($TERM is set to screen)
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我正在使用 zsh 和 OSX Termial,但问题也存在于 bash 中。
xterm
(XQuartz)也不存在这个问题,所以我猜它是由 OSX 的 Terminal.app 引起的。
刚刚在 tmux 邮件列表上找到了这个旧线程。
我为$TERM
(screen, screen-256colors, xterm, xterm-color, nsterm)尝试了不同的值,但错误仍然存在。
所以我想尽管切换到另一个终端模拟器我无能为力?
我正在使用zsh
中vi-mode
。
当我进入正常模式ESC然后回到插入模式(例如使用i,a或s)时,行编辑器会“保护”字符前面的行部分,当我重新进入插入模式时.
我通过重新绑定它为退格字符修复了它
bindkey "^?" backward-delete-char
Run Code Online (Sandbox Code Playgroud)
但是仍然有其他类似的绑定^W
不能开箱即用(可能是因为它们绑定到vi-*
)。
如果我理解正确,这种行为对于vi
.
有没有办法让zle
行为像vim
而不必重新绑定这么多键?
我想为匹配模式的每个文件执行一个命令。但是似乎正确的命令对我不起作用,我不知道为什么。
$ find . -type f -name '*.c' -or -name '*.h' -or -name '*.cpp' -exec ls {} \;
$ ls
script.sh test.c test.h
Run Code Online (Sandbox Code Playgroud) command-line ×1
find ×1
line-editor ×1
patterns ×1
tmux ×1
vi-mode ×1
wildcards ×1
zle ×1
zsh ×1