zle - Não consigo descobrir porque o Ctrl + R não funciona para não-raiz

3

O Ctrl + R funciona para raiz (bem toor), mas não consigo encontrar porque não funciona para o usuário.

Usuário .zshrc :

setopt AUTO_CD
setopt CORRECT_ALL
setopt EXTENDED_GLOB
# History
SAVEHIST=10000
HISTSIZE=10000
HISTFILE=~/.zsh/history
setopt APPEND_HISTORY
setopt EXTENDED_HISTORY
setopt INC_APPEND_HISTORY
setopt HIST_FIND_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_SPACE
setopt NO_HIST_BEEP
setopt SHARE_HISTORY
# Keys
autoload zkbd
[[ ! -d ~/.zkbd ]] && mkdir ~/.zkbd
[[ ! -f ~/.zkbd/$TERM-${DISPLAY:-$VENDOR-$OSTYPE} ]] && zkbd
source  ~/.zkbd/$TERM-${DISPLAY:-$VENDOR-$OSTYPE}
[[ -n ${key[Home]}    ]]  && bindkey  "${key[Home]}"    beginning-of-line
[[ -n ${key[End]}     ]]  && bindkey  "${key[End]}"     end-of-line
[[ -n ${key[Insert]}  ]]  && bindkey  "${key[Insert]}"  overwrite-mode
[[ -n ${key[Delete]}  ]]  && bindkey  "${key[Delete]}"  delete-char
[[ -n ${key[Up]}      ]]  && bindkey  "${key[Up]}"      up-line-or-history
[[ -n ${key[Down]}    ]]  && bindkey  "${key[Down]}"    down-line-or-history
[[ -n ${key[Left]}    ]]  && bindkey  "${key[Left]}"    backward-char
[[ -n ${key[Right]}   ]]  && bindkey  "${key[Right]}"   forward-char
# Auto completion
autoload -U compinit promptinit
compinit
promptinit
prompt clint
zstyle ':completion::complete:*' use-cache 1
setopt HASH_LIST_ALL
# MIME
autoload -U zsh-mime-setup
zsh-mime-setup
# Calc
autoload -U zcalc
# Login
alias su="su - toor"

diff com root .zshrc:

--- -   2011-01-06 23:53:54.772440701 +0100
+++ .zshrc  2011-01-06 23:50:00.000000000 +0100
@@ -38,9 +38,5 @@
 zsh-mime-setup
 # Calc
 autoload -U zcalc
-# Editor
-export EDITOR=vim
-# Paludis
-alias background="schedtool -B -e"
-alias lowprio="nice -n 20 ionice -c 3"
-alias blowprio="ionice -c 3 schedtool -B -e nice -n 20"
+# Login
+alias su="su - toor"

Alguma idéia?

zsh versão 2.3.11.

    
por Maciej Piechotka 06.01.2011 / 23:55

1 resposta

9

Se você tem $EDITOR = vi* ou VISUAL = vi* quando zsh é iniciado, o zsh usa o modo de inserção do vi como o mapa de teclas padrão. Caso contrário, o zsh usa o modo emacs. Você provavelmente configurou EDITOR (ou VISUAL ) para vim em seu arquivo init, mas não possui essa configuração quando executado como root, portanto, você está vendo o mapa do modo vi, em que a pesquisa de histórico está em ^X r e ^X s .

Adicione bindkey -e ao seu .zshrc (ou aprenda o mapa vi).

Como de costume, isso está na documentação ( zshzle man page), mas você precisa saber o que está procurando.

    
por 07.01.2011 / 00:36