วิธีคัดลอกบรรทัดที่เลือกไปยังคลิปบอร์ดเป็นกลุ่ม


87

วิธีคัดลอกบรรทัดที่เลือกไปยังคลิปบอร์ดเป็นกลุ่ม ฉันรู้วิธีทำสำหรับไฟล์ข้อความทั้งหมดแต่ฉันต้องการทำในบรรทัดที่เลือก ขอบคุณ!



คำตอบ:


108

SHIFTVทำให้คุณอยู่ในโหมดเลือกเส้น จากนั้น"*yดึงบรรทัดที่เลือกในปัจจุบันไปยัง*รีจิสเตอร์ซึ่งเป็นคลิปบอร์ด มีการลงทะเบียนที่แตกต่างกันเล็กน้อยสำหรับวัตถุประสงค์ที่แตกต่างกัน ดูส่วนบนselection and drop registersสำหรับรายละเอียดเกี่ยวกับความแตกต่างระหว่าง*และการ+ลงทะเบียนบน Windows และ Linux


10
ใน Linux + คือคลิปบอร์ดส่วนกลาง * คือคลิปบอร์ดสำหรับเลือกในขณะที่ใน Windows ทั้งสองจะจับคู่กับคลิปบอร์ดส่วนกลาง
Mohnish

74

หากคุณใช้ Linux และใช้ VIm เวอร์ชัน 7.3.74 หรือสูงกว่า (เวอร์ชันที่ติดตั้งใน Ubuntu 11.10 เป็นต้นไปเป็นไปตามนี้) คุณสามารถทำได้

set clipboard=unnamedplus

ซึ่งจะวางข้อความที่ดึงเข้าไปในคลิปบอร์ดส่วนกลางและช่วยให้คุณสามารถวางจากคลิปบอร์ดส่วนกลางได้โดยไม่ต้องใช้การลงทะเบียนพิเศษใด ๆ ซึ่งแตกต่างจากโซลูชันของ ldigas สิ่งนี้จะใช้ได้กับ VIm เวอร์ชันที่ไม่ใช่ gui


8
สิ่งนี้ใช้ได้เฉพาะเมื่อฉันติดตั้งvim-gnomeแพคเกจแทนvimไฟล์.
dan-klasson

4
@ dan-klasson: ตัวเลือกนี้ต้องการกลุ่มที่รวบรวมด้วยการสนับสนุนคลิปบอร์ด vim --version | grep "+xterm_clipboard"คุณสามารถตรวจสอบได้หากเป็นกรณีโดยพิมพ์นี้
BenC

ดูเหมือนว่าจะสามารถคัดลอกไปยังโปรแกรมอื่น ๆ ที่ไม่ใช่เป็นกลุ่มได้ แต่เมื่อฉันเข้าสู่โหมดแทรกในกลุ่มและใช้ "shift + insert" เพื่อวางจากคลิปบอร์ดมีเพียงสองบรรทัดแรกเท่านั้นที่จะถูกวาง ... ฉันติดตั้ง vim-gnome ; ฉันพลาดอย่างอื่นหรือเปล่า?
t2k32316

2
หากคุณใช้ macOS คุณอาจต้องใช้clipboard=unnamedแทน ( vim.wikia.com/wiki/Accessing_the_system_clipboard )
streof

13
set guioptions+=a

จะ ... อืมพูดสั้น ๆ เมื่อใดก็ตามที่คุณเลือก / ดึงบางสิ่งบางอย่างใส่ไว้ในคลิปบอร์ดด้วย (ไม่ใช่ของ Vim แต่เป็นแป้นพิมพ์ส่วนกลางของระบบหน้าต่าง) ด้วยวิธีนี้คุณไม่ต้องคิดเกี่ยวกับการดึงสิ่งต่าง ๆ ลงในทะเบียนพิเศษ


2
// คำแนะนำนี้ใช้กับระบบปฏิบัติการและ / หรือเวอร์ชันใดของ Vim
Nathan Basanese

10

สำหรับ GVIM กดvเพื่อเข้าสู่โหมดภาพ เลือกข้อความและกดCtrl+Insertเพื่อคัดลอกการเลือกไปยังคลิปบอร์ดส่วนกลาง

จากเมนูคุณจะเห็นว่าปุ่มทางลัดคือ"+yกดปุ่ม Shift ค้างไว้จากนั้นกด"จาก+นั้นปล่อย Shift แล้วกดy(ยุ่งยากเมื่อเทียบกับ Shift + Insert)


เหตุใดคำตอบนี้จึงไม่เป็นที่นิยม? :(
Ankit Shubham

6

หากคุณใช้ vim ใน MAC OSX น่าเสียดายที่มันมาพร้อมกับเวอร์ชันเก่ากว่าและไม่เป็นไปตามตัวเลือกคลิปบอร์ด โชคดีที่ homebrew สามารถแก้ปัญหานี้ได้อย่างง่ายดาย

ติดตั้ง vim:

brew install vim --with-lua --with-override-system-vim

ติดตั้ง gui verion ของ vim:

brew install macvim --with-lua --with-override-system-vim

รีสตาร์ทเทอร์มินัลเพื่อให้มีผล

ต่อท้ายบรรทัดต่อไปนี้เพื่อ ~ / .vimrc

set clipboard=unnamed

ตอนนี้คุณสามารถคัดลอกบรรทัดเป็นกลุ่มyy และวางได้ทั้งระบบ


// ฉันเพิ่งทดสอบสิ่งนี้บน OSX 10.12.3 และมันทำงานได้อย่างถูกต้องหลังจากที่ฉันติดตั้งทั้ง Vim ล่าสุดและ Vim เวอร์ชัน latets ของ Vim ตามที่คุณแนะนำที่นี่ ขอบคุณ @anonymous
Nathan Basanese

4

ติดตั้ง "xclip" หากคุณยังไม่ได้ ...

sudo apt-get install xclip

Xclip ใส่ข้อมูลลงในคลิปบอร์ด "การเลือก / ไฮไลต์" ที่คุณคลิกกลางเพื่อวางตรงข้ามกับ "ctrl + v"

ในขณะที่อยู่ในกลุ่มให้ใช้คำสั่ง ex:

7w !xclip

หรือ

1,7w !xclip

หรือ

%w !xclip

จากนั้นคลิกกลางเพื่อวางลงในแอปพลิเคชันอื่น ๆ ...


4

หากรวบรวมเป็นกลุ่มด้วยการสนับสนุนคลิปบอร์ดคุณสามารถใช้"*yความหมาย: ดึงข้อความที่เลือกด้วยสายตาลงใน register *('*' สำหรับคลิปบอร์ด)

หากไม่มีการสนับสนุนคลิปบอร์ดฉันคิดว่ามีวิธีอื่นเท่านั้นที่จะใช้Ctrl+Insertหลังจากเลือกข้อความเป็นกลุ่ม


3

ฉันได้เพิ่มบรรทัดต่อไปนี้ในไฟล์ .vimrc

vnoremap <F5> "+y<CR>

นี้ช่วยให้คุณเพื่อคัดลอกข้อความที่เลือกF5ไปยังคลิปบอร์ดโดยการกด คุณต้องอยู่ในโหมดภาพเพื่อให้ใช้งานได้


1
แอด~/.vimrcขอบคุณนี้ดีกว่าเยอะ
jaggedsoft

2

เพิ่มรหัสต่อไปนี้ลงใน.vimrc:

if has('clipboard')
    if has('unnamedplus')  " When possible use + register for copy-paste
        set clipboard=unnamed,unnamedplus
    else         " On mac and Windows, use * register for copy-paste
        set clipboard=unnamed
    endif
endif

0

ก่อนอื่นให้ตรวจสอบว่าการติดตั้งเป็นกลุ่มของคุณรองรับคลิปบอร์ดหรือไม่

vim --version

หากติดตั้งการรองรับคลิปบอร์ดคุณจะเห็น:

+clipboard
+X11
+xterm_clipboard

หากไม่ได้ติดตั้งการรองรับคลิปบอร์ดคุณจะเห็น:

-clipboard
-X11
-xterm_clipboard

ในการติดตั้งการสนับสนุนคลิปบอร์ด:

apt-get install vim-gnome

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

  1. วางเคอร์เซอร์ไว้ที่บรรทัดแรกที่คุณต้องการคัดลอก
  2. กดShiftvเพื่อเข้าสู่โหมดภาพ
  3. กดเพื่อเลือกหลายบรรทัด
  4. กด"+yเพื่อคัดลอกข้อความที่เลือกไปยังคลิปบอร์ดของระบบ
  5. ตอนนี้คุณสามารถคัดลอกข้อความที่เลือกไปยังเบราว์เซอร์โปรแกรมแก้ไขข้อความ ฯลฯ
  6. กด"+pหากคุณต้องการคัดลอกข้อความคลิปบอร์ดของระบบเป็นกลุ่ม

ขั้นตอนข้างต้นอาจน่าเบื่อหากคุณต้องคัดลอกซ้ำ ๆ จากกลุ่มไปยังคลิปบอร์ดของระบบและในทางกลับกัน คุณสามารถสร้างทางลัดเป็นกลุ่มเพื่อให้เมื่อคุณกดCtrlcข้อความที่เลือกจะถูกคัดลอกไปยังคลิปบอร์ดของระบบ และเมื่อคุณกดCtrlpระบบข้อความคลิปบอร์ดจะถูกคัดลอกไปยังกลุ่ม ในการสร้างทางลัด:

  1. เปิดไฟล์. vimrc และเพิ่มข้อความต่อไปนี้ที่ท้ายไฟล์:

     nnoremap <C-c> "+y
     vnoremap <C-c> "+y
     nnoremap <C-p> "+p
     vnoremap <C-p> "+p
    
  2. บันทึกและโหลด. vimrc ของคุณซ้ำเพื่อใช้การเปลี่ยนแปลงใหม่

  3. วางเคอร์เซอร์ไว้ที่บรรทัดแรกที่คุณต้องการคัดลอก

  4. กดShiftvเพื่อเข้าสู่โหมดภาพ

  5. กดเพื่อเลือกหลายบรรทัด

  6. กดCtrlcเพื่อคัดลอกข้อความที่เลือกไปยังคลิปบอร์ดของระบบ

  7. ตอนนี้คุณสามารถคัดลอกข้อความที่เลือกไปยังเบราว์เซอร์โปรแกรมแก้ไขข้อความ ฯลฯ

  8. กดCtrlpหากคุณต้องการคัดลอกข้อความคลิปบอร์ดของระบบเป็นกลุ่ม

หมายเหตุ: สำหรับระบบ ubuntu

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