我的终端主题曾经是这样,
但是我认为提示浪费了很多空间。后来我有了一个主意,每次运行命令时都可以清除提示。我正在使用bash,解决方案之一是使用该preexec_invoke_exec
功能。
我使用以下命令清除最后一个提示字符:
echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"
这样终端很干净
但是现在我的问题是,如果我想在一行中使用多个命令(例如,当我使用)时会出现问题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技巧 -太好了!
简单的解决方案开始于
—
吉尔斯(Gills'SO-别再邪恶了)
zsh
……
我想念你在那里的问题了……
—
David Hoelzer 2014年