วิธีการคัดลอกข้อความจากเสียงเรียกเข้าไปยังโปรแกรมภายนอก?


84

ฉันพยายามคัดลอกข้อความจากกลุ่ม ฉันทำวีเพื่อเข้าสู่โหมดภาพแล้วYเมื่อฉันเลือกบล็อกของฉัน

ดูเหมือนว่าจะคัดลอกข้อความไปยังคลิปบอร์ดของกลุ่มเพราะ p จะวางมัน แต่ในโปรแกรมอื่น (เช่น Chrome) การคลิกขวา -> วางไม่ได้วางข้อความที่ถูกต้อง ฉันจะคัดลอกข้อความไปยังคลิปบอร์ดที่ถูกต้องได้อย่างไร

คำตอบ:


62

ต่อไปนี้จะใช้งานได้ก็ต่อเมื่อvim --versionระบุว่าคุณมี+xterm_clipboardคุณสมบัติ ถ้าไม่คุณจะต้องติดตั้งแพ็กเกจเพิ่มเติมหรือคอมไพล์ซ้ำเป็นกลุ่มด้วยคุณสมบัติที่เพิ่มเข้ามา


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

"+y

คัดลอกไปยังบัฟเฟอร์คลิปบอร์ด "ปกติ" (เพื่อให้คุณสามารถวางโดยใช้ Ctrl + V คลิกขวาและเลือก "วาง" ฯลฯ ) ในขณะที่

"*y

คัดลอกไปยังการเลือก X11 - คุณสามารถวางจากบัฟเฟอร์นี้โดยใช้การคลิกกลาง

ทราบว่า"*และ"+ทำงานทั้งสองวิธี ดังนั้นถ้าคุณได้เลือกข้อความบางส่วนในการประยุกต์ใช้อื่นคุณสามารถวางลงในกลุ่มที่ใช้"*pและถ้าคุณได้คัดลอกข้อความบางส่วน (โดยใช้การพูด, Ctrl-C) "+pจากนั้นคุณสามารถวางลงในกลุ่มที่ใช้


@Shepang มันไม่ทำงานจากผงสำหรับอุดรู ฉันควรทำอย่างไร ?
ราหุลปาติล

@RahulPatil ฉันไม่รู้ อาจถามคำถามแยกต่างหากอาจจะเป็นผู้ใช้ขั้นสูง (เนื่องจากเป็นเครื่องมือ Windows จึงน่ายินดียิ่งขึ้น)
tshepang

@RahulPatil - หากคุณใช้ผงสำหรับอุดรูแล้วคุณกำลังแก้ไขไฟล์บนเซิร์ฟเวอร์ระยะไกลไม่ใช่ในเครื่องท้องถิ่นของคุณ โดยทั่วไปเซิร์ฟเวอร์ระยะไกลจะไม่ทราบเกี่ยวกับคลิปบอร์ดในเครื่องของคุณ หากคุณใช้เดสก์ท็อป Linux คุณสามารถ ssh ด้วยการส่งต่อ X (หากคุณได้ติดตั้งไลบรารี X บนเซิร์ฟเวอร์) แต่เนื่องจากผงสำหรับอุดรูทำงานบน windows คุณไม่มี X ที่ทำงานดังนั้นคุณจึงไม่สามารถส่งต่อได้
Hamish Downer

1
สวัสดีทุกคนวิธีการพิมพ์ "+ y" ฉันควรพิมพ์ในโหมดภาพหรือโหมดคำสั่งได้อย่างไรสิ่งที่โง่ แต่ฉันไม่สามารถคิดออกได้
Alind Billore

@AlindBillore: ในโหมดคำสั่ง แท้จริงกดปุ่มshift'แล้วจากshift=นั้นy(ไม่ทั้งหมดในครั้งเดียวหนึ่งหลังจากที่อื่นยกเว้นการเปลี่ยนแปลงแน่นอน)
เรด

31

หากคุณใช้ vim> = 7.3.74 คุณสามารถนำสิ่งนี้ไปใช้ใน vimrc ของคุณได้:

set clipboard=unnamedplus

ซึ่งจะใช้+บัฟเฟอร์โดยอัตโนมัติ(คลิปบอร์ดของระบบ) เป็นค่าเริ่มต้น จากนั้นเพื่อดึง (คัดลอก) คุณเพียงแค่ใช้yคำสั่งปกติฯลฯ

ฉันพบว่าพฤติกรรมนี้ค่อนข้างน่ารำคาญ แต่เนื่องจากคำสั่งต่าง ๆdใส่ข้อความที่พวกเขาทำงานลงในบัฟเฟอร์เริ่มต้นซึ่งหมายความว่าฉันไม่สามารถทำได้อย่างรวดเร็วddและวางสายจากอินเทอร์เน็ตตัวอย่างเช่น


2
+ เป็นผู้ลงทะเบียนคลิปบอร์ด
Kit Ho

1
เกี่ยวกับประเด็นสุดท้ายของคุณddหมายถึง "ตัดหนึ่งบรรทัด" เพื่อให้เป็นไปตามที่คาดหวัง ในกรณีที่หายากเมื่อคุณต้องการลบบรรทัดในการให้อภัยจริง"_ddจะทำเคล็ดลับ
user7089

เช่นเดียวกับ @HamishDowner บันทึกในคำตอบของเขา: สิ่งต่อไปนี้จะใช้ได้เฉพาะในกรณีที่vim --versionระบุว่าคุณมี+xterm_clipboardคุณสมบัติ ถ้าไม่คุณจะต้องติดตั้งแพ็กเกจเพิ่มเติมหรือคอมไพล์ซ้ำเป็นกลุ่มด้วยคุณสมบัติที่เพิ่มเข้ามา
rudolph9

24

กดปุ่มShiftค้างไว้แล้วเลือกข้อความด้วยเคอร์เซอร์ของเมาส์
ข้อความจะถูกคัดลอกไปยังคลิปบอร์ด

นอกจากนี้ยังใช้สำหรับวางจากคลิปบอร์ดลงในกลุ่ม

ต้องมีความชัดเจนงานนี้สำหรับvimการทำงานใน terminal xtermเช่น


คุณหมายถึงการกดปุ่ม Shift ค้างไว้เมื่อเลือกข้อความหรือไม่? xtermนั่นคือวิธีที่ผมทำมันด้วย
nozimica

@nozimica: ใช่
Loop Space

คำตอบนี้ควรจะมีผู้
โหวต

@LoopSpace สำหรับการเลือกหลายบรรทัดซึ่งจะเป็นการคัดลอกหมายเลขบรรทัดด้วยเมื่อset nuเปิดใช้งาน ดังนั้นคุณอาจต้องการสลับหมายเลขบรรทัดด้วยช็อตคัทหรือรัน:set nonuคำสั่งก่อนการเลือกทุกครั้ง
Steven Pribilinskiy

ใน MAC ค้างปุ่มตัวเลือกและเลือกข้อความด้วยเคอร์เซอร์ของเมาส์
abreschi

10

ฉันพบว่ามาตรฐาน"+gPและ"+yคำสั่งใช้งานยากมาก ดังนั้นฉันจึงทำการแมปใหม่Ctrl-Yสำหรับการดึงเข้าไปในคลิปบอร์ดและCtrl-Pเพื่อวางจากคลิปบอร์ด เพิ่มไปยัง.vimrc

nnoremap <C-y> "+y
vnoremap <C-y> "+y
nnoremap <C-p> "+gP
vnoremap <C-p> "+gP

5

ไม่เป็นไรฉันพบคำตอบ - มันเขียนไว้ในเมนูของกลุ่ม

"+y

ใช้งานง่ายมาก


คุณกำลังใช้gvim?
nozimica

@ nozimica- ใช่
ripper234

1
นอกจากนี้ยังมีให้ใน vim ที่ทำงานใน xterm หรือเทอร์มินัลอีมูเลเตอร์ที่คล้ายกันภายใต้ X (หาก vim ถูกคอมไพล์ด้วย+xterm_clipboardฟีเจอร์)
Gilles

3

เพียงเพื่อเพิ่มคำตอบที่ไม่เฉพาะเจาะจง: คุณสามารถใช้Ctrl+Shift+Cเพื่อคัดลอกไปยังคลิปบอร์ดของระบบใน Ubuntu (หากฟังก์ชันการทำงานมีให้โดย terminal emulator ของคุณ gnome-terminal สำหรับหนึ่งให้มัน) Ctrl+Shift+Vวางลงในหน้าต่างเทอร์มินัลอื่นCtrl+Vวางปกติไปยังแอป GUI

นอกจากนี้หากคุณเลือกข้อความในเทอร์มินัลจากนั้นคลิกกลางข้อความจะถูกวางจากคลิปบอร์ด X11


ด้วยเหตุผลบางอย่างมันไม่ทำงาน เพียงเลือกด้วยโหมดภาพคัดลอกด้วย ctrl-shift-C แล้ววางในแอพอื่นโดยใช้ Ctrl-shift-V? ข้อความไม่ถูกคัดลอกมาให้ฉัน
ripper234

2
@ ripper234: วิธีนี้ใช้ไม่ได้หากคุณใช้ gvim ดังที่ crazy2be กล่าวว่าฟังก์ชั่นนี้มาจากโปรแกรมจำลองเทอร์มินัลของคุณ
เรด

@ ripper234: 1) มันเป็นฟังก์ชั่นที่มีให้โดยโปรแกรมจำลองเทอร์มินัลของคุณ (gnome-terminal สำหรับหนึ่งให้มัน) 2) Ctrl + Shift + V คือการวางเพื่อเทอร์มินัลแอป GUI ยังคงใช้ Ctrl + V ตามปกติ ฉันจะแก้ไขคำตอบเพื่อให้ชัดเจนยิ่งขึ้น
crazy2be

หากคุณใช้ mousedrag shift-control - เลือกข้อความการคัดลอกการวางจากหน้าต่างบัฟเฟอร์หนึ่งกลายเป็นเรื่องง่าย
เตฟาน

2

โดยค่าเริ่มต้นหากคุณติดตั้ง vim เวอร์ชัน light คุณจะไม่มี+xterm_clipboardคุณลักษณะ on ( vim --version | grep xterm) ซึ่งจำเป็นสำหรับการใช้*และการ+ลงทะเบียนภายนอก vim

ในการเปิดใช้งานคุณต้องรวบรวมเสียงเรียกเข้าด้วยตนเองหรือติดตั้งเวอร์ชันของเสียงเรียกเข้าที่มาพร้อมกับรุ่นก่อนหน้า sudo apt-get install vim-gnomeฉันใช้เสียงเรียก-คำพังเพย: หากคุณแสดงvim --version | grep xtermคุณจะเห็นได้+xterm_clipboardทันที

ตอนนี้ลองคัดลอกไป+และ*และมันควรจะทำงาน


2

เมื่อฉันตรวจสอบเสียงเรียกเข้าของฉันไม่สนับสนุนคลิปบอร์ด:

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

ฉันติดตั้ง vim-gnome แล้วตรวจสอบอีกครั้ง

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

ตอนนี้ฉันสามารถคัดลอกและวางโดยใช้ "+ y และ" + p ตามลำดับ


1

กดแป้น SHIFT ค้างไว้และเลือกข้อความเพื่อคัดลอก

แล้ววางในโปรแกรมอื่น ๆ CTRL + vที่มี

ทำงานใน terminal บน Ubuntu 16.04 ของฉัน ไม่แน่ใจเกี่ยวกับgvimและระบบอื่น ๆ

ป้อนคำอธิบายรูปภาพที่นี่


ที่ใช้งานไม่ได้
Astrid

คำตอบที่สร้างสรรค์
vidur punj

0

เพียงแค่เพิ่มหากงานใด ๆ พยายามที่จะเปลี่ยนขั้วที่ห่อเป็นกลุ่ม (ถ้าคุณกำลังใช้เป็นกลุ่มจากสถานี) ฉันพบว่าตัวอย่างเช่นคลิปบอร์ดไม่สามารถเข้าถึงได้โดย guake ขณะที่สามารถเข้าถึงได้จาก gnome-terminal

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