Bảng tạm của Bash là nội bộ của bash, bash không kết nối với máy chủ X.
Những gì bạn có thể làm là thay đổi ý nghĩa của M-w
việc sao chép lựa chọn vào bảng tạm X bên cạnh bảng tạm bên trong của bash. Tuy nhiên, sự tích hợp của bash khá lỏng lẻo và tôi không nghĩ có cách nào để truy cập thông tin khu vực hoặc bảng tạm từ mã bash. Bạn có thể tạo một ràng buộc chính để sao chép toàn bộ dòng vào X clipboard.²
if [[ -n $DISPLAY ]]; then
copy_line_to_x_clipboard () {
printf %s "$READLINE_LINE" | xsel -ib
}
bind -x '"\eW": copy_line_to_x_clipboard'
fi
Nếu bạn muốn làm những thứ lạ mắt trong trình bao, hãy chuyển sang zsh, trong đó (trong số những lợi thế khác) có sự tích hợp tốt hơn nhiều giữa trình chỉnh sửa dòng và ngôn ngữ kịch bản.
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 không đặc biệt có một clipboard, đây là chung cho X.
²
Tính đến bash 4.1, có một lỗi trong mã phân tích cú pháp chính: chuỗi chìa khóa bị ràng buộc với bind -x
có thể không hơn hai ký tự. Tôi nghĩ bash 4.2 sửa một số trường hợp tiền tố dài hơn nhưng không phải tất cả chúng; Tôi chưa nghiên cứu chi tiết.