ฉันกำลังเรียกใช้ tmux รุ่นล่าสุด (จากที่เก็บ git) และ xclip (0.12) และฉันต้องการใช้การผูกคีย์บอร์ดของ Emacs เหมือนเพื่อเลื่อนไปมากับข้อความcopy-mode
คัดลอก ( M-w
) ตัวเลือกไปยังคลิปบอร์ดและ วาง ( C-y
) จาก / ไปยังบัฟเฟอร์การคัดลอกไปยังคลิปบอร์ด
จนถึงตอนนี้ฉันสามารถวางข้อความด้วยC-y
และย้ายไปรอบ ๆcopy-mode
ด้วยการผูกคีย์บอร์ด Emacs เหมือน แต่ฉันยังคงไม่สามารถคัดลอกข้อความจาก tmux buffer (เช่นในcopy-mode
)
ฉันพบกระทู้นี้สำหรับการคัดลอกบัฟเฟอร์ทั้งหมดไปยังคลิปบอร์ด (และ viceversa) แต่ดูเหมือนจะไม่ทำงานสำหรับฉัน
นอกจากนี้ในtmux-users
รายชื่ออีเมลผมก็บอกว่ารุ่นล่าสุดของ tmux (เฉพาะใน repo คอมไพล์) copy-pipe
จัดให้มีคำสั่งที่เรียกว่า หน้าคนพูดเกี่ยวกับคำสั่งนี้ต่อไปนี้:
หนึ่งคำสั่งในการยอมรับอาร์กิวเมนต์คัดลอกไพพ์ซึ่งคัดลอกส่วนที่เลือกและไพพ์ไปยังคำสั่ง ตัวอย่างเช่นต่อไปนี้จะผูก 'C-q' เพื่อคัดลอกส่วนที่เลือกลงใน / tmp เช่นเดียวกับการวางบัฟเฟอร์:
bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
ดูเหมือนว่าcopy-pipe
มีวัตถุประสงค์เพื่อใช้ในส่วนที่จะไพพ์การเลือกไปยังคำสั่งอื่น ดูเหมือนว่าจะมีการพิมพ์ผิดในคำอธิบายนี้และในคำสั่ง (คือtemacs-copy
อะไร)
ไม่ว่าจะด้วยวิธีใดสิ่งที่ฉันต้องการทำคือ:
คัดลอก:
- เข้าสู่โหมดคัดลอก
- ย้ายไปที่ข้อความที่ฉันต้องการที่จะคัดลอกโดยใช้คำสั่งนำทาง Emacs (เช่น
C-f
,C-b
,M-f
,M-b
,C-a
,C-e
ฯลฯ เพื่อเลื่อนเคอร์เซอร์) ไม่มีคำนำหน้าสำหรับสิ่งเหล่านี้ - คัดลอกข้อความที่เลือกไปยังคลิปบอร์ดด้วย:
M-w
( ไม่มีส่วนนำหน้า )
การวาง:
- ฉันต้องการพิมพ์
C-y
( โดยไม่ต้องป้อนcopy-mode
) เพื่อวางข้อความในเทอร์มินัล ( ไม่มีส่วนนำหน้า )
ฉันได้ลองทำสิ่งต่อไปนี้เพื่อคัดลอกโดยไม่มีโชค:
bind-key -n M-w run "tmux save-buffer - | xclip -i -selection clipboard"
อย่างไรก็ตามการวางทำได้ดี:
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"
สิ่งที่แปลกคือฉันรู้ว่าxclip -i -selection clipboard
ส่วนของคำสั่งคัดลอกด้านบนทำงานได้ดีเนื่องจากฉันสามารถคัดลอกสิ่งต่าง ๆ ไปยังคลิปบอร์ดในบรรทัดคำสั่งได้เช่น:
echo "Hello world. How are you?" | xclip -i -selection clipboard
ทั้งหมดนี้ฉันจะคัดลอกส่วนที่เลือกจากโหมดคัดลอกไปยังคลิปบอร์ดได้อย่างไร