Bash'ın panosu bash için dahili, bash X sunucusuna bağlanmaz.
Yapabileceğiniz şey M-w
, bash'ın iç panosuna ek olarak seçimi X panosuna¹ kopyalamanın anlamını değiştirmek . Ancak bash'ın entegrasyonu oldukça gevşek ve bölge bilgisine veya panoya bash kodundan erişmenin bir yolu olduğunu düşünmüyorum. Tüm satırı X panosuna kopyalamak için bir anahtar ciltleme yapabilirsiniz.
if [[ -n $DISPLAY ]]; then
copy_line_to_x_clipboard () {
printf %s "$READLINE_LINE" | xsel -ib
}
bind -x '"\eW": copy_line_to_x_clipboard'
fi
Kabukta süslü şeyler yapmak istiyorsanız, (diğer avantajların yanı sıra) satır editörü ve komut dosyası dili arasında çok daha iyi bir entegrasyona sahip olan zsh'a geçin.
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'un özellikle bir panosu yoktur, bu X için geneldir.
²
Bash 4.1'den itibaren, anahtar ayrıştırma kodunda bir hata var: bağlı tuş dizileri bind -x
iki karakterden uzun olamaz. Bence bash 4.2 bazı uzun önekleri düzeltti ama hepsini değil; Ayrıntıları araştırmadım.