ไม่สามารถคัดลอกจากกลุ่มไปยังคลิปบอร์ดของระบบ


54

ตามที่ระบุไว้ในชื่อเรื่องฉันไม่สามารถคัดลอกจากคลิปบอร์ดไปยังคลิปบอร์ดระบบได้ Viceversa ทำงานได้, การคัดลอกจากกลุ่มนอกและวางด้วยpก็โอเค

ฉันได้ติดตั้งการสนับสนุนคลิปบอร์ดเวอร์ชัน vim คือ 7.3.429:

$ vim --version | grep clip
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+xsmp_interact +xterm_clipboard -xterm_save 

ฉันมี:

set clipboard=unnamedplus

ในของฉัน.vimrcและมันถูกตั้งค่าเมื่อฉันทำ:

set clipboard?

หรือ

:echo has('clipboard')

ฉันใช้ Ubuntu 12.04 LTS และเป็นกลุ่มภายในgnome-terminal(แต่ GVim ก็มีปัญหาเดียวกัน) ความคิดใด ๆ

ขอบคุณ


stackoverflow.com/questions/11489428/…อาจช่วยคุณได้เล็กน้อย
coteyr

คุณไม่เลิกเป็นกลุ่มระหว่างพิมพ์ "+ Y ในการเลือกภาพและพยายามที่จะวางเป็นกลุ่มนอกมันจะไม่ทำงานถ้าคุณจะทำอย่างไร
ซามูเอลปีเตอร์

@SamuelPeter ไม่ฉันไม่ได้ออกไปเป็นกลุ่ม
gc5

1
ฉันพบปัญหานี้เพราะฉันกำลังตั้งค่าclipboard+=unnamedplusบางอย่างในการตั้งค่าเริ่มต้นคือปิดการใช้งาน การเปลี่ยนเป็นclipboard=unnamedplus(เช่นลบการตั้งค่าอื่น ๆ ) ได้ผลสำหรับฉัน
JonnyRaa

ดังที่ @JonnyLeeds พูดถึง การกำหนดค่าset clipboard+=unnamed& set clipboard+=unnamedplusไม่ทำงานในขณะที่ใช้yและpเพื่อแชร์คลิปบอร์ดของระบบ :set clipboard?== clipboard=autoselect,exclude:cons\|linux,unnamed,unnamedplus; หลังจากที่ผมออกครั้งแรก+ซึ่งเป็นset clipboard=unnamedและset clipboard+=unnamedplusและการทำงาน !! :set clipboard?==clipboard=unnamed,unnamedplus
Marslo

คำตอบ:


87

นี่คือสิ่งที่ใช้ได้กับฉัน (Ubuntu 13.10):

ติดตั้ง vim ใหม่เป็น vim-gtk:

sudo apt-get install vim-gtk

เลือกสิ่งที่คุณต้องการใช้เมาส์ - จากนั้นพิมพ์เพื่อคัดลอกไปที่คลิปบอร์ด :

"+y

เพื่อวางเป็นกลุ่มจากประเภทคลิปบอร์ด :

"+p

ฉันไม่รู้ว่าทำไม แต่เปรียบเทียบผลลัพธ์ของการvim --versionแสดงว่าการติดตั้ง vim ปกติค่อนข้าง จำกัด เมื่อเทียบกับ vim-gtk การเปลี่ยน vim ด้วย vim-gtk ไม่มีผลกับปลั๊กอินใด ๆ


ข้อมูลเพิ่มเติม:


1
ฉันไม่สามารถแสดงได้ว่าคุณช่วยฉันได้มากแค่ไหนและฉันมีความสุขมากแค่ไหนในตอนนี้: D
7hi4g0

1
น่าสนใจที่ 14.04 ทั้ง VIM ปกติและ VIM-GTK มีxterm_clipboardการรองรับ แต่"+pไม่สามารถใช้งานใน VIM ปกติ แทนที่จะคลิปไปที่คลิปบอร์ดจะเพิ่มจำนวนบรรทัดที่เลือก
dotancohen

1
vim-gtkท้ายที่สุดการติดตั้งใช้งานได้กับฉันใน 14.04.4 แต่ฉันก็รู้สึกว่าแตกต่างจากที่คนอื่นแสดงความคิดเห็นเล็กน้อย ก่อนที่จะมีการvim-gtkติดตั้งเป็นกลุ่มแสดง-xterm_clipboard(เช่นไม่ได้เปิดใช้งาน) หลังจากติดตั้งvim-gtkแล้วมันจะแสดง (+ xterm_clipboard) vim --version | grep clipฉันกำลังตรวจสอบเรื่องนี้กับ อย่างไรก็ตามทำให้รู้สึกว่าคุณต้องการ+xterm_clipboard!
คิดทบทวน

นี่เป็นทางออกที่ดี ที่จริงแล้วฉันได้ทำสิ่งนี้เป็นสิ่งแรกที่ฉันต้องทำหลังจากติดตั้ง Ubuntu OS ใหม่
linbianxiaocao

การติดตั้ง vim-gtk นั้นเหมาะสำหรับฉัน ขอบคุณ
Miguel Mota

6

ฉันจะทิ้งคำตอบเดิมไว้ด้านล่างเพราะอาจเป็นสิ่งสำคัญสำหรับผู้อื่นที่ค้นหาคำถามนี้

ในระยะสั้นดูเหมือนจะไม่มีขนาดที่เหมาะกับคำตอบทั้งหมด แต่ด้วย 'set clipboard = unnamedplus' หนึ่งใน '* p' หรือ '+ p' ควรทำงานจากคลิปบอร์ด "system"

'* p' เป็นสิ่งที่คุณต้องการ ( จากที่นี่ )


เป็นกลุ่มโปรแกรม cli เมื่อใช้ภายใน gnome-terminal (หรือเทอร์มินัลอีมูเลเตอร์ใด ๆ ) crtl + c (หรือคีย์ผสม) จะถูกจัดการโดยเทอร์มินัลอีมูเลเตอร์ก่อนจากนั้นจึงทำการเชลล์โดยโปรแกรม (เป็นกลุ่มในที่สุด) เสียงเรียกเข้าและ ctrl + c แทบจะไม่ทำงานอย่างแน่นอนเพราะ ctrl + c ส่งสัญญาณ SIGINT ไปยังงานที่กำลังรันอยู่ vim ใช้ SIGINT เพื่อหยุดสิ่งอื่น ๆ เช่นยกเลิกโหมดแทรกหรือหยุดฟังก์ชั่นการค้นหา

ในคำอื่น ๆ Ctrl + C ไม่ถูกส่งผ่านไปยัง VIM จริง ๆ SIGINT ผ่านไปยัง VIM SIGINT มีการใช้งานอื่น ๆ เป็นกลุ่มดังนั้นการใช้การคัดลอกอาจไม่สามารถใช้งานได้ (และแม้ว่าคุณสามารถบังคับได้ แต่ไม่ใช่ความคิดที่ดี)

ลองติดกับ Ctrl + Shift + C และ Ctrl + Shift + V แทน (มีคนอื่น แต่ฉันเชื่อว่าข้อความเหล่านั้นใส่ไว้ในคลิปบอร์ดของระบบ)

เพื่อความยุติธรรมฉันไม่รู้อะไรมากเกี่ยวกับ gvim


บางทีฉันอาจสับสนคุณ .. ฉันพูดโดยใช้ctrl-cเสียงเรียกนอกและวางด้วยpแต่ฉันก็รู้ว่าฉันต้องใช้y.. ฉันจะแก้ไขคำถามของฉัน
gc5

1
ฮ่า ๆ ยังไม่มีคาเฟอีนของฉันยังขอโทษ
coteyr

5

ใช้ใน vimrc ของคุณ:

set mouse=a

มันจะช่วยให้คุณสามารถเลือกและคัดลอกด้วยตนเองด้วยเมาส์


3

นอกเหนือจากคำตอบที่ได้รับการยอมรับหากคุณทำงานในระยะไกลผ่าน SSH (เช่นข้ามtmuxบานหน้าต่างหลายบานที่มีvimกระบวนการต่าง ๆ ที่คุณต้องการคัดลอก) คุณจะต้องส่งออกจอภาพ X เนื่องจากvimใช้xterm-clipboardเพื่อเชื่อมต่อระหว่างกระบวนการต่างๆ คุณสามารถตั้งค่าจอแสดงผล X โดยเรียกใช้

export DISPLAY=:0.0

สิ่งนี้จะต้องดำเนินการก่อนที่ vimจะเปิดตัวและภายใต้เชลล์อื่น ๆ ที่คุณมี


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