0

您可以将内容推送到缓冲区^Q并使用ESC-g. Alt+x vi-set-buffer以某种方式更改缓冲区。如何查看所有缓冲区?它们可能是一些要查看的文件。

4

1 回答 1

1

^Q(and 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(或 Home Ctrl-K 或 Ctrl-X Ctrl-K)
  • 要显示预缓冲区,请键入echo 'ghi,按回车键,键入jkl'
  • 按回车执行上一条命令并清除当前缓冲区(不要忘记按Alt-o查看更改)
  • 要显示 L 和 R 缓冲区,请键入echo "mno pqr"并按几次左箭头
于 2010-04-15T23:25:58.593 回答