如何将 vi 模式中的选择粘贴到剪贴板

如何将 vi 模式中的选择粘贴到剪贴板

ctrl我想通过终端中的命令+vctrl++shift来使用剪贴板的 vi 模式访问我在缓冲区中复制的内容v

我在 .zshrc 中复制了以下内容:(来自此答案: 从剪贴板粘贴到启用 vi 的 zsh 或 bash shell

vi-append-x-selection () { RBUFFER=$(xsel -o -p </dev/null)$RBUFFER; }
zle -N vi-append-x-selection
bindkey -a '^X' vi-append-x-selection
vi-yank-x-selection () { print -rn -- $CUTBUFFER | xsel -i -p; }
zle -N vi-yank-x-selection
bindkey -a '^Y' vi-yank-x-selection

当我在 vi 模式下突出显示终端中的某些内容并将其拉出时,我可以通过输入Ctrl+ shift+成功检索它y。但是,当我输入Ctrl+ shift+时v,会粘贴其他内容。

当我使用以下命令检查剪贴板的内容时:

xclip -o sel p
xclip -o sel s
xclip -o sel c
xsel -o -p
xsel -o -s
xsel -o -b

它包含我之前用其他方式复制的其他字符串,但不是我在 vi 模式下突出显示的字符串。

这是我的第一个问题:如果我可以使用命令Ctrl+ shift+检索它y并确认它xsel不在xclip存储的三个缓冲区(“主要”、“辅助”和“剪贴板”)之一中,那么???)

我还尝试将行中的“^Y”替换为“^V”

bindkey -a '^Y' vi-yank-x-selection

(如下:)

bindkey -a '^V' vi-yank-x-selection

没有任何成功(似乎打印出一个空缓冲区)

我的第二个问题: 我究竟做错了什么?

相关内容