ฉันจะคัดลอกเอาต์พุตคำสั่งเป็นกลุ่มได้อย่างไร?


33

ตัวอย่างเช่นถ้าฉันพิมพ์ ' :pwd' เพื่อรับไดเรกทอรีการทำงานปัจจุบันฉันสามารถเลือกข้อความเป็น gvim แต่ฉันไม่สามารถหาวิธีคัดลอกไปยังคลิปบอร์ดได้ หากฉันลองแบบเดียวกันในคอนโซลคอนโซลฉันจะไม่สามารถเลือกด้วยเมาส์ได้ ฉันต้องการให้ทำงานกับคำสั่ง vim ทั้งหมดเช่นset guifontเพื่อคัดลอกguifont=Consolas:h10:cANSIเอาต์พุต

คำตอบ:


41

คุณกำลังมองหาสิ่งนี้อยู่หรือไม่

:redir @* | set guifont | redir END

:คำสั่ง redirเปลี่ยนเส้นทางเอาต์พุตของคำสั่งไปยัง register (@ *) register @ * หมายถึงคลิปบอร์ด

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้

:help :redir

ใช้งานไม่ได้ใน vim-gtk เงื่อนงำบางอย่าง?
Sergio Abreu

@SergioAbreu ลอง@+แทน@*(ก็ใช้งานได้ใน gvim)
leeand00

10

ลองใช้ ' :r !pwd' เพื่อรับไดเรกทอรีการทำงานปัจจุบันโดยตรงไปยังไฟล์ที่เปิดอยู่ของ GVIM
จากนั้นคุณสามารถคัดลอกไปยังคลิปบอร์ดเหมือนกับที่คุณเปิดเนื้อหาไฟล์ข้อความอื่น ๆ


สิ่งนี้มีประโยชน์ แต่ฉันสามารถใช้กับset guifontตัวอย่างนี้ได้หรือไม่
สตีเวน

ไม่นั่นไม่ใช่คำสั่งเชลล์ดังนั้นมันจึงไม่ทำงาน
Kevin Panko

4

สำหรับตัวอย่างนี้คุณสามารถทำได้ (สังเกต "!" ซึ่งทำให้มันผ่านเชลล์):

:!pwd | xclip

หรือ

:!pwd | xclip -selection secondary

(ขึ้นอยู่กับตัวเลือก X ที่คุณต้องการ)

คุณอาจต้องติดตั้ง xclip ก่อน

sudo apt-get install xclip

(หรือเทียบเท่า)


3

หากคุณใช้เสียงเรียกเข้าเป็น xterm การกดปุ่ม Shift ค้างไว้ในขณะที่เลือกข้อความจะเป็นการคัดลอกข้อความไปยัง X ที่เทียบเท่ากับคลิปบอร์ด


X มีสองคลิปบอร์ด (อย่างน้อย); ข้อเสนอแนะของคุณจะวางข้อความในการเลือกหลัก (วางด้วยการคลิกกลาง) แทนการเลือก CLIPBOARD (วางด้วย Ctrl + V ในแอปส่วนใหญ่)
Marius Gedminas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.