您可以将内容推送到缓冲区^Q
并使用ESC-g
. Alt+x vi-set-buffer
以某种方式更改缓冲区。如何查看所有缓冲区?它们可能是一些要查看的文件。
问问题
842 次
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 回答