2010-04-15 67 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