นี่คือความพยายามในการตอบที่ครอบคลุม
ก่อนประวัติศาสตร์เล็กน้อย
เมื่อคำถามนี้ถูกถามเป็นครั้งแรก (มิถุนายน 2011) การคัดลอกข้อความจาก Tmux ไปยังคลิปบอร์ดจะต้องมีกระบวนการสองขั้นตอนให้คัดลอกข้อความที่เลือกไปยังบัฟเฟอร์ของ Tmux แล้วคัดลอกข้อความจากบัฟเฟอร์ของ Tmux ไปยังคลิปบอร์ดของระบบ
ใน 1.8 (มีนาคม, 2013) copy-pipe
คำสั่งถูกเพิ่มซึ่งช่วยให้คุณสามารถคัดลอกข้อความที่เลือกตรงไปยังคลิปบอร์ดของระบบ (หรือปลายทางอื่น ๆ )
จากนั้นใน 2.4 (เมษายน 2017) ตารางสำคัญถูกเปลี่ยนแปลงอย่างมีนัยสำคัญทำให้ได้คำตอบมากมายในหน้านี้ซึ่งล้าสมัย
ตอบคำถามเดิม
Linux :
bind-key C-y run-shell "tmux save-buffer - | xclip -i -r > /dev/null" \; display-message "Copied tmux buffer to selection"
bind-key C-Y run-shell "tmux save-buffer - | xclip -i -r -selection clipboard > /dev/null" \; display-message "Copied tmux buffer to clipboard"
bind-key C-p run-shell "xclip -o | tmux load-buffer - ; tmux paste-buffer"
Mac :
หากคุณใช้homebrewคุณควรติดตั้งreattach-to-user-namespace
โดยใช้คำสั่งต่อไปนี้ในเทอร์มินัล:
brew install reattach-to-user-namespace
จากนั้นใน ~ / .tmux.conf ของคุณ:
bind-key C-y run-shell "tmux save-buffer - | reattach-to-user-namespace pbcopy" \; display-message "Copied tmux buffer to clipboard"
bind-key C-p run-shell "reattach-to-user-namespace pbpaste | tmux load-buffer - ; tmux paste-buffer"
The Shorter Method (คัดลอกและวางส่วนที่เลือกตรงจากและไปยังคลิปบอร์ดสำหรับ tmux> 2.4)
หมายเหตุ: มีสองรุ่นสำหรับ Linux เนื่องจาก Linux มีคลิปบอร์ดหลักและรอง (เรียกอีกอย่างว่าการเลือก)
Linux :
bind-key -T copy-mode-vi y send-keys -X copy-pipe "xclip -r" \; display-message "Copied to selection"
bind-key -T copy-mode-vi Y send-keys -X copy-pipe "xclip -r -selection clipboard" \; display-message "Copied to clipboard"
bind-key C-p run-shell "xclip -o | tmux load-buffer - && tmux paste-buffer"
Mac :
bind-key -T copy-mode-vi y send-keys -X copy-pipe "reattach-to-user-namespace pbcopy" \; display-message "Copied to clipboard"
การกำหนดคำสั่งเหล่านี้เอง
หากคุณไม่ต้องการให้คำสั่งบอกคุณว่ามันทำอะไรในบรรทัดสถานะเพียงแค่ลบdisplay-message
(รวมถึงสิ่ง\;
ที่มาก่อนหน้า)
หากคุณกำลังใช้โหมดคัดลอกสไตล์ของ Emacs แทนที่จะเป็น vi ให้เปลี่ยนอินสแตนซ์ใด ๆcopy-mode-vi
ด้วยเพียงแค่copy-mode
หากคุณใช้งาน Linux และคุณต้องการใช้xsel
แทนการxclip
แทนที่xclip -r
ด้วยxsel -i -p
และxclip -o
ด้วยxsel -o -p
-r
ในxclip -r
เป็นตัวเลือกก็เอาขึ้นบรรทัดใหม่ที่ผ่านมา มันมีประโยชน์สำหรับการคัดลอกคำสั่งจากนั้นเมื่อคุณวางคำสั่งพวกเขาจะไม่ถูกดำเนินการทันที
หากคุณกำลังเจาะผ่าน SSH คุณควรศึกษาhttps://unix.stackexchange.com/a/354581/14252
อ้างอิง: