Terminal
當我在 zsh 中使用 ^T 打開一個新的 lxterminal 選項卡時,如何停止在第一行出現 ^T%?
重現步驟:
- 將 zsh 作為預設 shell。
- 打開一個新的終端。例如,使用
Ctrl
++ 。Alt``T
- 按
Ctrl
+Shift
+T
打開一個新的終端選項卡。^T%
顯示為第一行我正在使用 lxde 和 zsh-4.3.11 執行 ubuntu 11.10。
Gnome-terminal 沒有這個問題。
內容
/etc/zsh/zshrc
:# /etc/zsh/zshrc: system-wide .zshrc file for zsh(1). # # This file is sourced only for interactive shells. It # should contain commands to set up aliases, functions, # options, key bindings, etc. # # Global Order: zshenv, zprofile, zshrc, zlogin READNULLCMD=${PAGER:-/usr/bin/pager} if [[ "$TERM" != emacs ]]; then [[ -z "$terminfo[kdch1]" ]] || bindkey -M emacs "$terminfo[kdch1]" delete-char [[ -z "$terminfo[khome]" ]] || bindkey -M emacs "$terminfo[khome]" beginning-of-line [[ -z "$terminfo[kend]" ]] || bindkey -M emacs "$terminfo[kend]" end-of-line [[ -z "$terminfo[kich1]" ]] || bindkey -M emacs "$terminfo[kich1]" overwrite-mode [[ -z "$terminfo[kdch1]" ]] || bindkey -M vicmd "$terminfo[kdch1]" vi-delete-char [[ -z "$terminfo[khome]" ]] || bindkey -M vicmd "$terminfo[khome]" vi-beginning-of-line [[ -z "$terminfo[kend]" ]] || bindkey -M vicmd "$terminfo[kend]" vi-end-of-line [[ -z "$terminfo[kich1]" ]] || bindkey -M vicmd "$terminfo[kich1]" overwrite-mode [[ -z "$terminfo[cuu1]" ]] || bindkey -M viins "$terminfo[cuu1]" vi-up-line-or-history [[ -z "$terminfo[cuf1]" ]] || bindkey -M viins "$terminfo[cuf1]" vi-forward-char [[ -z "$terminfo[kcuu1]" ]] || bindkey -M viins "$terminfo[kcuu1]" vi-up-line-or-history [[ -z "$terminfo[kcud1]" ]] || bindkey -M viins "$terminfo[kcud1]" vi-down-line-or-history [[ -z "$terminfo[kcuf1]" ]] || bindkey -M viins "$terminfo[kcuf1]" vi-forward-char [[ -z "$terminfo[kcub1]" ]] || bindkey -M viins "$terminfo[kcub1]" vi-backward-char # ncurses fogyatekos [[ "$terminfo[kcuu1]" == ""* ]] && bindkey -M viins "${terminfo[kcuu1]/O/[}" vi-up-line-or-history [[ "$terminfo[kcud1]" == ""* ]] && bindkey -M viins "${terminfo[kcud1]/O/[}" vi-down-line-or-history [[ "$terminfo[kcuf1]" == ""* ]] && bindkey -M viins "${terminfo[kcuf1]/O/[}" vi-forward-char [[ "$terminfo[kcub1]" == ""* ]] && bindkey -M viins "${terminfo[kcub1]/O/[}" vi-backward-char [[ "$terminfo[khome]" == ""* ]] && bindkey -M viins "${terminfo[khome]/O/[}" beginning-of-line [[ "$terminfo[kend]" == ""* ]] && bindkey -M viins "${terminfo[kend]/O/[}" end-of-line [[ "$terminfo[khome]" == ""* ]] && bindkey -M emacs "${terminfo[khome]/O/[}" beginning-of-line [[ "$terminfo[kend]" == ""* ]] && bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line fi zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \ /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin unalias run-help autoload run-help # If you don't want compinit called here, place the line # skip_global_compinit=1 # in your $ZDOTDIR/.zshenv or $ZDOTDIR/.zprofice if [[ -z "$skip_global_compinit" ]]; then autoload -U compinit compinit fi
內容
~/.zshrc
:# The following lines were added by compinstall zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate zstyle ':completion:*' group-name '' zstyle ':completion:*' list-colors '' zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]} m:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=* r:|=*' '+l:|=* r:|=*' zstyle :compinstall filename '/home/kirill/.zshrc' autoload -Uz compinit promptinit zcalc zsh-mime-setup compinit promptinit zsh-mime-setup # End of lines added by compinstall # Lines configured by zsh-newuser-install HISTFILE=~/.histfile HISTSIZE=10000 SAVEHIST=10000 setopt appendhistory autocd extendedglob notify sharehistory setopt HIST_EXPIRE_DUPS_FIRST #{{{ Shell Conveniences # some more ls aliases alias ls='ls --color' alias lt='ls --color -ltr' alias ll='ls -l' alias lh='ls -l -h' alias la='ls -A' alias l='ls -CF' alias vir='vim -R' alias vimnw='vim -R +"set nowrap"' alias tok='top -n1 -b -u kirill' alias gt='gnome-terminal' alias gts='gnome-terminal --window-with-profile=shnurov' #alias tv='/usr/toolworks/totalview.8.6.2-2/bin/totalview' #alias mpic='mpiCC.openmpi -o main -I/usr/local/include/boost-1_39/ main.cc -Llibdir -lboost_mpi-gcc43-mt-1_39 -lboost_serialization-gcc43-mt-1_39' #alias mpir='mpirun.openmpi -np 7 ./main' alias sage='~/progs/sage-4.8/sage' #alias gmolden='/home/kirill/progs/molden/gmolden' #alias molden='/home/kirill/progs/molden/molden' #export LD_LIBRARY_PATH=/home/kirill/progs/molekel_5_4_0_linux_x86_64/lib:$LD_LIBRARY_PATH #alias molekel='/home/kirill/progs/molekel_5_4_0_linux_x86_64/bin/Molekel' #alias molekel='source /home/kirill/progs/molekel_5_4_0_linux_x86_64/launch_molekel.sh' alias duh='du -s -h' alias mam='make; time ./main' alias mac='make clean;make;time ./main' alias atdtool='~/progs/atdtool/atdtool' alias acro='acroread -openInNewWindow' #}}} bindkey -e bindkey "^[[A" history-beginning-search-backward bindkey "^[[B" history-beginning-search-forward # End of lines configured by zsh-newuser-install # Customize to your needs... export PATH=/opt/intel/composer_xe_2011_sp1.6.233/bin/intel64:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/intel/composer_xe_2011_sp1.6.233/mpirt/bin/intel64 #source /opt/intel/bin/compilervars.sh intel64 autoload -U colors && colors PROMPT="%{$fg[red]%}%*%{$reset_color%}.%{$fg[cyan]%}%~%{$reset_color%} %{$reset_color%}%{$fg[magenta]%}>%{$reset_color%}" #PROMPT="${fg_red}%*${fg_white}${at_normal}.${fg_cyan}%~${fg_white} ${bg_grey} #${at_normal}${fg_white}>${at_normal}"
這是一個 lxterminal 錯誤。
它不會在其他 shell 中顯示,因為當您在發出提示之前不包含尾隨換行符時,zsh 足以嘗試向您顯示上一個命令顯示的隱藏字元。
如果你鍵入
echo -n foo
,你會看到foo%
。%
表示沒有換行符。上面,發生的事情是 lxterminal^T
在執行 shell 之前輸出。在其他 shell 中
^T%\nprompt>
,您看到的不是^Tprompt
.Lxterminal 有另一個錯誤順便說一句,它忽略了
$SHELL
.