2010-04-15 66 views
0

你可以用^Q推动缓冲区并用ESC-g弹出。不知何故,Alt+x vi-set-buffer更改缓冲区。我怎样才能看到所有的缓冲区?他们可能是一些文件,看看。Zsh:如何查看所有缓冲区?

回答

1

^Q(和Esc-Q)和Esc-g使用emacs缓冲区,所以我不认为它们与vi缓冲区交互。

这个工作在emacs模式(set -o emacs):

function _showbuffers() 
{ 
    local nl=$'\n' kr 
    typeset -T kr KR $'\n' 
    KR=($killring) 
    typeset +g -a buffers 
    buffers+="  Pre: ${PREBUFFER:-$nl}" 
    buffers+=" Buffer: $BUFFER$nl" 
    buffers+="  Cut: $CUTBUFFER$nl" 
    buffers+="  L: $LBUFFER$nl" 
    buffers+="  R: $RBUFFER$nl" 
    buffers+="Killring:$nl$nl$kr" 
    zle -M "$buffers" 
} 
zle -N showbuffers _showbuffers 
bindkey "^[o" showbuffers 

为了证明它,尝试每个步骤,按Alt-O(字母 “O”),或按Esc-O各一个:

  • 要显示剪切缓冲区,类型echo abc然后按下Ctrl-U
  • 要显示剪切环(在前面的剪切缓冲区有移动),类型echo def然后按下Ctrl-U(或主页按Ctrl-K或按Ctrl - X Ctrl-K)
  • 显示预先缓冲,类型echo 'ghi,按回车键,键入jkl'
  • 按Enter执行以前的命令,并清除当前缓冲区(不要忘记按下Alt-O看到的变化)
  • 要显示L和R缓冲区,请键入echo "mno pqr"并按向左箭头几次
+0

“显示”意思是“演示”,因为所有包含的缓冲区都与每次调用一起显示。 – 2010-04-16 14:08:28