1
我有我的bash提示符,如下面的腳本定義 -有時光標跳到行首在bash提示符
#!/bin/bash
if tput setaf 1 &> /dev/null; then
tput sgr0; # reset colors
bold=$(tput bold);
reset=$(tput sgr0);
black=$(tput setaf 235)
red=$(tput setaf 1)
green=$(tput setaf 142)
yellow=$(tput setaf 214)
blue=$(tput setaf 66)
purple=$(tput setaf 175)
cyan=$(tput setaf 37)
gray=$(tput setaf 246)
white=$(tput setaf 223)
orange=$(tput setaf 208)
else
bold='';
reset="\e[0m";
black="\e[1;30m";
blue="\e[1;34m";
cyan="\e[1;36m";
green="\e[1;32m";
orange="\e[1;33m";
purple="\e[1;35m";
red="\e[1;31m";
violet="\e[1;35m";
white="\e[1;37m";
yellow="\e[1;33m";
fi;
# Highlight the user name when logged in as root.
if [[ "$USER" == "root" ]]; then
userStyle="$red";
else
userStyle="$orange";
fi;
# Highlight the hostname when connected via SSH.
if [[ "$SSH_TTY" ]]; then
hostStyle="$green";
else
hostStyle="$gray";
fi;
dirStyle="$cyan"
function prompt_command {
ret_code=$?
# Are we running in a shell invoked from Vim?
if [[ "$VIM" ]]; then
vim="(Vim) "
else
vim=""
fi
# Did last command return non-zero value?
if [ "$ret_code" != 0 ]; then
ret_str="\[$red\]$ret_code>"
else
ret_str="\[$green\]$"
fi
PS1="\[$userStyle\]\u \[$reset\]at \[$hostStyle\]\H \[$reset\]in \[$dirStyle\]\w\n\[$yellow\]$vim$ret_str\[$reset\] "
}
export PROMPT_COMMAND=prompt_command
export PS2="\[$blue\]continue -> \[$reset\]"
它很簡單,只需用戶名,主機名,當前目錄和幾個變量 - 一個檢查如果從vim調用shell,而其他則是最後一個命令的返回碼。
有時光標會跳到行首,當我嘗試完成標籤頁時。在發生這種情況時,我一直無法找到模式。
這是提示的樣子 -
rogandhi at sjc-ads-253 in ~/tools
$
rogandhi at sjc-ads-253 in ~/tools
$ adsf
-bash: adsf: command not found
rogandhi at sjc-ads-253 in ~/tools
127>
貌似這個當外殼由VIM調用 -
rogandhi at sjc-ads-253 in ~/tools
(Vim) $
rogandhi at sjc-ads-253 in ~/tools
(Vim) $ asdf
bash: asdf: command not found
rogandhi at sjc-ads-253 in ~/tools
(Vim) 127>
以下是declare -p PS1
rogandhi at sjc-ads-253 in ~/tools
$ declare -p PS1
declare -- PS1="\\[\\]\\u \\[\\]at \\[\\]\\H \\[\\]in \\[\\]\\w\\n\\[\\]\\[\\]\$\\[\\] "
任何輸出想法?我如何去調試這種行爲?
爲什麼周圍的換行有括號? –
當您設置'PS1 =「>>>」'時,是否會發生這種情況? – hek2mgl
@ IgnacioVazquez-Abrams當我在'\ n'周圍添加括號時,光標跳轉發生得不那麼頻繁。 – ronakg