ctrl
我想通过终端中的命令+v
或ctrl
++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
没有任何成功(似乎打印出一个空缓冲区)
我的第二个问题: 我究竟做错了什么?