Clipboard

Ctrl-y,將 x-clipboard 內容拉到終端添加 shell 提示字元串

  • August 6, 2015

使用此連結,我編寫了自定義函式以在按下時將文本從 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,沒有更多的內容被拉扯。

您需要更新$READLINE_LINE$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'

閱讀手冊了解詳情。

引用自:https://unix.stackexchange.com/questions/220478