使用这个链接,我编写了自定义函数,以便在按下 时将文本从 x-剪贴板拉到 shell 终端C-y
。我在这里看到两个问题,
copy_line_from_x_clipboard () {
xsel -o
}
bind -x '"\C-y": copy_line_from_x_clipboard'
1) 按 后添加 shell 提示字符串 PS1 C-y
。我更喜欢这个函数的行为与Ctrl - Shift -v
.目前,它输出,
CLIPBOARD_STUFF PS1$
2) 第一次拉出文本后,它会清空系统剪贴板。第二次,我按C-y
,没有更多内容被拉出。
答案1
您需要更新函数中的$READLINE_LINE
and 。将输出$READLINE_POINT
插入到处。xsel -o
$READLINE_POINT
$READLINE_LINE
copy_line_from_x_clipboard() {
local n=$READLINE_POINT
local l=$READLINE_LINE
local s=$(xsel -o)
READLINE_LINE=${l:0:$n}$s${l:$n:$((${#l}-n))}
READLINE_POINT=$((n+${#s}))
}
bind -x '"\C-y": copy_line_from_x_clipboard'
读手册了解详情。