Como parar a aparência de ^ T% na primeira linha quando abro uma nova guia lxterminal com ^ T em zsh?

1

Etapas para reproduzir:

  1. Tenha zsh como shell padrão.
  2. Abra um novo terminal. por exemplo, com Ctrl + Alt + T .
  3. Pressione Ctrl + Deslocar + T para abrir uma nova guia de terminal.
  4. ^T% aparece como a primeira linha

Estou executando o Ubuntu 11.10 com lxde e zsh-4.3.11.

O terminal Gnome não tem esse problema.

Conteúdo de /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

Conteúdo de ~/.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}"
    
por kirill_igum 29.05.2012 / 05:55

1 resposta

3

Esse é um bug lxterminal.

Ele não aparece em outros shells porque o zsh é legal o suficiente para tentar mostrar a você caracteres ocultos mostrados pelo comando anterior quando você não inclui uma nova linha antes de emitir um prompt.

Se você digitar echo -n foo , verá foo% . O % indica que não havia nenhum caractere de nova linha. Acima, o que acontece é que as saídas lxterminal que ^T antes de executar o shell.

Em outros shells, em vez de ^T%\nprompt> , você vê ^Tprompt .

O Lxterminal tem outro bug BTW, pois ignora o valor de $SHELL .

    
por 28.08.2012 / 22:57