2012-02-29 18 views
45

Cuando, en Bash, tengo dos terminales abiertos, cada uno mantiene su propio historial, por lo que presionar flecha arriba siempre presenta el comando anterior ingresado en ese terminal.Último comando en el mismo terminal

En zsh, el historial se comparte, por lo que flecha arriba presenta el último comando ingresado en cualquiera de los terminales. Me gusta más que ctrl-R me da la historia completa y compartida, pero ¿hay alguna manera de hacer que flecha arriba me dé el último comando desde la terminal activa?

+0

¿Hubo alguna vez un veredicto sobre esto? Me parece recordar haber encontrado un sitio para este truco. IMO esto debería ser el comportamiento predeterminado. – lang2

+0

Una buena opción para tener ambas: https://superuser.com/questions/446594/separate-up-arrow-lookback-for-local-and-global-zsh-history – Melebius

Respuesta

68

¿Qué dice setopt?

Quizás tenga la opción SHARE_HISTORY establecida.

Puede desarmarlo con setopt no_share_history o unsetopt share_history.

Para obtener más opciones, busque en man zshoptions.

+12

Sospecho que mucha gente podría aterrizar aquí (como yo) mientras buscaba una forma de compartir el historial de zsh, y aún tenía el comando _last_ en la misma ventana que se mostraba primero. – Excalibur

+1

Excelente, exactamente lo que estaba buscando, 'setopt' no es muy intuitivo, esperaba algo como' setopt share_history 0' –

+0

@Excalibur Tienes razón. ¿Encontró alguna solución para obtener este comportamiento? – lumbric

1

No puedo ayudarte directamente, pero en mis terminales, el historial de comandos es uno para uno, así que es el comportamiento que esperas. Debajo imprimo mi archivo .zshrc. Por favor juega con eso Manejo mis terminales con Yakuake.

# The following lines were added by compinstall 

bindkey -v 

bindkey -M viins '^r' history-incremental-search-backward 
bindkey -M vicmd '^r' history-incremental-search-backward 


#http://grml.org/zsh/zsh-lovers.html 
zstyle ':completion:*' use-cache on 
zstyle ':completion:*' cache-path ~/.zsh/cache 



zstyle ':completion:*' completer _complete _match _approximate 
zstyle ':completion:*:match:*' original only 
zstyle ':completion:*:approximate:*' max-errors 1 numeric 
zstyle ':completion:*' expand prefix suffix 
zstyle ':completion:*' list-colors '' 
zstyle ':completion:*' list-suffixes true 
zstyle ':completion:*' original true 
zstyle ':completion:*:functions' ignored-patterns '_*' 
zstyle ':completion:*:cd:*' ignore-parents parent pwd 
zstyle :compinstall filename '/home/borys/.zshrc' 
zstyle ':completion:*:(rm|kill|diff):*' ignore-line yes 

autoload colors; colors 
setopt autocd 
setopt extendedglob 


autoload -Uz compinit 
compinit 
# End of lines added by compinstall 
# Lines configured by zsh-newuser-install 
HISTFILE=~/.histfile 
HISTSIZE=1000 
SAVEHIST=1000 
# End of lines configured by zsh-newuser-install 

# opens txt files in vi 
alias -s txt=vi 

#shortcuts for going up in directories hierarchy 
alias -g ...='../..' 
alias -g ....='../../..' 
alias -g .....='../../../..' 

alias d="dirs -v" 
setopt PUSHD_IGNORE_DUPS 
setopt AUTO_PUSHD 
DIRSTACKSIZE=14 



alias findfn="find -type f -name " 
alias duall="du -s ./* | sort -n| cut -f 2-|xargs -i du -sh {}" 

#prompt theme 
COLOR_RESET="%{$reset_color%}" 
PS1="$fg_bold[black][%[email protected]%m:$fg[blue]%~] 
$COLOR_RESET%%" 
PS2=$PS1 
    # PS1=[%[email protected]%m:%2~] 

# color stderr 
exec 2>>(while read line; do 
    print '\e[91m'${(q)line}'\e[0m' > /dev/tty; print -n $'\0'; done &) 

#show vi mode in prompt 
function zle-line-init zle-keymap-select { 
#fg_light_red=$'%{\e[5;25m%}' 

# RPS1="$fg_light_red ${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}" 
# RPS2=$RPS1 
# PS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --} 
#[%[email protected]%m:%2~]" 
PS1="${${KEYMAP/vicmd/$COLOR_RESET}/(main|viins)/$fg_bold[black]}[%[email protected]%m:$fg[blue]%~] 
$COLOR_RESET%%" 
    PS2=$PS1 
    zle reset-prompt 
} 
zle -N zle-line-init 
zle -N zle-keymap-select 

export SVN_EDITOR=vi 
Cuestiones relacionadas