ฉันมีสองไฟล์ที่เปิดเป็นกลุ่มแต่ละไฟล์ในหนึ่งบานหน้าต่าง tmux ฉันต้องการคัดลอกสมมติว่า 10 บรรทัดจากไฟล์หนึ่งไปยังอีก
ฉันจะทำสิ่งนี้สำเร็จโดยไม่ใช้เมาส์Copy
-> ได้Paste
อย่างไร
ฉันมีสองไฟล์ที่เปิดเป็นกลุ่มแต่ละไฟล์ในหนึ่งบานหน้าต่าง tmux ฉันต้องการคัดลอกสมมติว่า 10 บรรทัดจากไฟล์หนึ่งไปยังอีก
ฉันจะทำสิ่งนี้สำเร็จโดยไม่ใช้เมาส์Copy
-> ได้Paste
อย่างไร
คำตอบ:
คุณจะต้องใช้ทางลัด tmux สมมติว่าทางลัดคำสั่ง tmux ของคุณเป็นค่าเริ่มต้น: Ctrl+ bจากนั้น:
Ctrlโหมดป้อน+ b, [คัดลอก (?)
เลื่อนไปที่จุดเริ่มต้น / สิ้นสุดข้อความเพื่อเน้น
Ctrlspace
เริ่มเน้นข้อความ (บน Arch Linux) เมื่อฉันรวบรวม tmux จากซอร์สบน OSX และ Linux อื่น ๆSpaceโดยปกติแล้วมันจะใช้งานได้ ข้อความที่เลือกเปลี่ยนสีดังนั้นคุณจะรู้ว่าคำสั่งทำงาน
เลื่อนไปที่ด้านตรงข้ามของข้อความเพื่อคัดลอก
Alt+ wคัดลอกข้อความที่เลือกไปยังคลิปบอร์ด tmux (สำหรับ Mac ให้ใช้Esc+ w.)
เลื่อนเคอร์เซอร์ไปที่บานหน้าต่างตรงข้าม tmux หรือหน้าต่าง tmux ที่แตกต่างอย่างสิ้นเชิง วางเคอร์เซอร์ที่คุณต้องการวางข้อความที่คุณเพิ่งคัดลอก
Ctrl+ b, ]วางข้อความที่คัดลอกมาจากคลิปบอร์ด tmux
tmux ค่อนข้างดีที่คำสั่งการแมปไปยังแป้นพิมพ์ลัดที่กำหนดเอง
ดูCtrl+ b, ?สำหรับรายการเต็มรูปแบบของชุดแป้นพิมพ์ลัด
screen
ทางลัด: Ctrl + A [
(เข้าสู่โหมดคัดลอก), Space
(เริ่มการไฮไลต์), Enter
(การไฮไลต์ที่สิ้นสุด), Ctrl + A ]
(วาง)
Enter
คีย์
น่าเสียดายที่ฉันยังไม่สามารถเพิ่มความคิดเห็นในคำตอบของ Alex Leach ดังนั้นฉันจะรวมภาคผนวกที่นี่สำหรับผู้ใช้ Mac OS X:
byobu
/ tmux
ด้วยการตั้งค่าเริ่มต้นทั้งหมดใช้งานได้ Alt + w ไม่ทำงาน
หากคุณใช้ vim และ tmux บน macOS (ทดสอบบน macOS 10.12.2, tmux 2.3):
(สมมติว่าคีย์ผสมของprefixส่วนนำหน้าของ tmux คือส่วนนำหน้าคือctrl+ bในค่าเริ่มต้น)
ฉันกำลังเชื่อมต่อกับเซิร์ฟเวอร์ CentOS ของฉันบนเครื่อง Windows โดยใช้ZOC terminalของลูกค้าZOC นี่คือสิ่งที่ได้ผลสำหรับฉัน:
<prefix>
+[
<Space>
<Enter>
<prefix>
+]
คุณสามารถใช้บอร์ดคลิประบบด้วย "* y และ" * p แทนที่จะใช้ y และ p ปกติ
"+2yy
- คัดลอกสองบรรทัดไปที่คลิปบอร์ด X11 "+dd
- ตัดเส้นไปที่คลิปบอร์ด X11 "+p
- วางคลิปบอร์ด X11
h,j,k,l
ในการ ย้ายฉันเคยเห็นบางครั้งบน ubuntu VM ของฉัน "+" การลงทะเบียนหายไปโดยไม่ทราบสาเหตุเพื่อตรวจสอบว่าคุณมีการ+
ลงทะเบียนคุณสามารถพิมพ์:reg
และตรวจสอบว่ามีสตริง"+
ในคอลัมน์แรกหรือไม่
y
และp
ไปที่"+y
และ"+p
หรือไม่
หากคุณvim
เปิดไว้จะเป็นการดีกว่าถ้าใช้ vim copy paste เพื่อคัดลอกข้อความ
Tmux copy paste จะทำงานได้อย่างไรก็ตามมีข้อเสียหลายประการ
ขั้นแรกเมื่อคัดลอกข้อความหลายบรรทัดคุณจะต้องเลือกหลายบรรทัด Tmux copy paste โดยทั่วไปไม่เข้าใจว่าvim
มีหมายเลขบรรทัดหรือมีเครื่องหมายในร่อง gim (เช่นหมายเลขสัมพัทธ์ / หมายเลขสัมบูรณ์) เป็นผลให้มันจะคัดลอกเหล่านั้นเช่นกัน
ประการที่สองฉันได้พบว่าถ้าข้อความมีการจัดรูปแบบเฉพาะบางภาษาและคุณพยายามคัดลอกวางโดยใช้ tmux ไปเป็นกลุ่มนั้นจะทำให้การจัดรูปแบบยุ่งเหยิง set paste!
นี้สามารถหลีกเลี่ยงโดยใช้ อย่างไรก็ตามสิ่งนี้ต้องใช้งานมากขึ้น
"+y
เพื่อคัดลอกและ"+p
วางVim
กำเนิดมีวิธีการคัดลอกวางระหว่างบัฟเฟอร์เป็นกลุ่มและคลิปบอร์ดระบบโดยใช้อย่างใดอย่างหนึ่งหรือ"+y
"*y
แล้ววางใช้หรือ"+p
"*p
การทำเช่นนี้จะเป็นการคัดลอกตัวเลขที่เกี่ยวข้องในรางน้ำหรือเครื่องหมายสุ่มอื่น ๆ ซึ่งไม่เกี่ยวข้องกับเสียงเรียกเข้า
คู่ของตัวเลือกสำหรับการใช้ vim เนื่องจากลำดับทางลัด tmux ค่อนข้างยาวและฉันคิดว่ามันยากที่จะจำ
เช่นเดียวกับคำตอบข้างต้นที่กล่าวว่าคุณสามารถใช้"+y
และ"*y
เพื่อคัดลอกและจากนั้น"+p
และ"*p
ตามลำดับเพื่อวาง หากคุณต้องการให้กลุ่มใช้คลิปบอร์ดเป็นค่าเริ่มต้นเพื่อให้คุณสามารถใช้งานy/p
ได้โดยตรง
set clipboard=unamed "sets the default copy register to be *
set clipboard=unamedplus "sets the default copy register to be +
แหล่งที่มาสำหรับคำสั่งคลิปบอร์ด: https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
:w /tmp/lines
จากนั้น:r /tmp/lines
ในอีกกรณี) หรือถ้า Vim ของคุณรู้วิธีพูดคุยกับคลิปบอร์ดระบบของคุณคุณสามารถใช้+
หรือ*
ลงทะเบียนเพื่อหลีกเลี่ยงไฟล์ชั่วคราว