Bashのクリップボードはbashの内部にあり、bashはXサーバーに接続しません。
できることは、M-w
bashの内部クリップボードに加えて、選択範囲をXクリップボード¹にコピーするという意味を変更することです。ただし、bashの統合はかなり緩く、bashコードから領域情報やクリップボードにアクセスする方法はないと思います。キーバインドを作成して、行全体をXクリップボードにコピーできます。²
if [[ -n $DISPLAY ]]; then
copy_line_to_x_clipboard () {
printf %s "$READLINE_LINE" | xsel -ib
}
bind -x '"\eW": copy_line_to_x_clipboard'
fi
シェルで凝ったことをしたい場合は、zshに切り替えてください。zshは(他の利点の中でも)、ラインエディターとスクリプト言語の統合がはるかに優れています。
if [[ -n $DISPLAY ]]; then
x-copy-region-as-kill () {
zle copy-region-as-kill
print -rn -- "$CUTBUFFER" | xsel -ib
}
x-kill-region () {
zle kill-region
print -rn -- "$CUTBUFFER" | xsel -ib
}
zle -N x-copy-region-as-kill
zle -N x-kill-region
bindkey '\C-w' x-kill-region
bindkey '\ew' x-copy-region-as-kill
fi
¹
Gnomeのは、特にクリップボードを持っていない、これはXに一般的である
²
を結合したキーシーケンス:のbash 4.1のように、キー解析コードにバグがありbind -x
、長い二つ以上の文字ではないかもしれないが。bash 4.2は、より長いプレフィックスのいくつかのケースを修正すると思いますが、すべてではありません。詳細については調査していません。