ฉันจะคัดลอก / วางจากคลิปบอร์ดของระบบใน Tmux ใน xterm บน Linux ได้อย่างไร


4

ฉันต้องการคัดลอกและวางจากคลิปบอร์ดของระบบ (X11) เมื่อทำการเลือกใน Tmux และฉันต้องการผูกการกระทำเหล่านี้กับเมาส์ คลิกซ้ายเพื่อคัดลอกและคลิกกลางเพื่อวาง

คำตอบ:


2

สำหรับรุ่นเก่าของ Tmux (<1.5) หรือระบบอื่น ๆ tmux-yankลอง สำหรับกรณีเฉพาะนี้ Tmux ทำงานร่วมกับระบบได้เป็นอย่างดี

ในของคุณ~/.tmux.confเพิ่ม:

set -g mouse on
set -g set-clipboard external
bind -T root MouseUp2Pane paste

เพื่อเปิดใช้งานการสนับสนุนเมาส์คัดลอกไปยังคลิปบอร์ดของระบบและผูกกลางคลิกที่บานหน้าต่างเพื่อวาง

และในของคุณ~/.Xresources:

xterm*selectToClipboard: true
xterm*disallowedWindowOps: 20,21,SetXProp

เพื่อให้ Xterm เลือกไปยังคลิปบอร์ดของระบบเช่นกันและอนุญาตให้ Tmux แก้ไขคลิปบอร์ด ("การทำงานของหน้าต่าง")

จากนั้นเมื่อต้องการใช้การเปลี่ยนแปลงของคุณ~/.Xresourcesให้รันxrdb -merge ~/.Xresourcesและรีสตาร์ท Xterm และ Tmux


เพื่อรองรับ macOS และ Windows Subsystem สำหรับ Linux (WSL) เราสามารถเพิ่ม

run-shell $HOME/.tmux.conf.sh

ไปที่~/.tmux.confแล้วสร้าง~/.tmux.conf.shด้วยเนื้อหาต่อไปนี้:

#!/bin/bash

bind_copy=(bind-key -T copy-mode-vi MouseDragEnd1Pane)

# `tmux_bind_copy pbcopy` will make selecting with the mouse (and then
# releasing the selection) in tmux pipe the selection to `pbcopy`
function tmux_bind_copy {
        tmux "${bind_copy[@]}" send-keys -X copy-pipe-and-cancel "$@"
}

if [[ "$(uname)" == "Darwin" ]]
then
    # Copy with pbcopy on macOS
    tmux_bind_copy pbcopy
fi

if [[ ! -z "$WSL_DISTRO_NAME" ]]
then
    # copy with Windows' clip.exe on WSL
    tmux_bind_copy /mnt/c/Windows/System32/clip.exe
fi

โปรดทราบว่าตัวเลือกการกำหนดค่า“ ขั้นสูง” อื่น ๆ สามารถทำได้.tmux.conf.shเช่นการตั้งค่าการกำหนดค่าตามชื่อโฮสต์ปัจจุบันการแจกจ่ายและอื่น ๆ การใช้if-shellก็เป็นทางเลือกเช่นกัน แต่โดยทั่วไปแล้วค่อนข้างงุ่มง่ามในทางปฏิบัติดังนั้นการใช้เชลล์สคริปจึงเป็นคำตอบที่ยอมรับได้

นอกจากนี้โปรดสังเกตไวยากรณ์ที่แปลก"${bind_copy[@]}"ซึ่งจะแทรก$bind_copy อาร์เรย์โดยไม่ทำการขยายตัวของ glob

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.