私の端末のテーマは以前はこんな感じでした
しかし、私はプロンプトがあまりにも多くのスペースを無駄にしたと思いました。そして、後で、コマンドを実行するたびにプロンプトをクリーンアップできるというアイデアを得ました。私はbashを使用していましたが、解決策の1つはpreexec_invoke_exec
関数を使用することです。
次のコマンドを使用して、最後のプロンプト文字を消去します。
echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"
このようにターミナルがとてもきれいになるように
しかし今私の問題は、たとえばを使用するときに、1行で複数のコマンドを使用する場合に問題が発生することですfor i in ...
。
これが私の.bashrcの関数の完全版です。
preexec () { echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"; echo -n "$1"; echo -ne " \033[37;2m["; echo -n "$2"; echo -ne "]\033[0m\n"; }
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
local this_command=`history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`;
local this_pwd=`pwd`;
preexec "$this_command" "$this_pwd"
}
trap 'preexec_invoke_exec' DEBUG
Glyph Lefkowitz zshトリック -いいね!
簡単な解決策は
—
Gilles「SO-邪悪なことをやめなさい」
zsh
… から始まります
私はそこにあなたの質問を逃しました...
—
David Hoelzer 14