ฉันลองใช้Ctrl+ Vสำหรับการวางเนื้อหาในเอกสารตัวแก้ไข vi แต่Ctrl+ Vไม่ถูกตีความว่าเป็นการวาง
ฉันลองใช้Ctrl+ Vสำหรับการวางเนื้อหาในเอกสารตัวแก้ไข vi แต่Ctrl+ Vไม่ถูกตีความว่าเป็นการวาง
คำตอบ:
ขั้นแรกตรวจสอบให้แน่ใจว่าคุณอยู่ในโหมดแก้ไข (กดi) จากนั้นคุณสามารถวางด้วยCtrl+ Shift+ Vหากคุณอยู่ในโปรแกรมจำลองเทอร์มินัลเช่นgnome-terminal
(หรือเลือก "วาง" จากเมนูคลิกขวา)
คุณยังสามารถพิมพ์:set paste
เป็นกลุ่มก่อนที่คุณจะวางเพื่อปิดการเยื้องอัตโนมัติ ฯลฯ จากนั้น:set nopaste
หลังจากที่คุณวางเนื้อหาแล้ว
ตรวจสอบคำถามนี้ใน stackoverflow.com เพื่อรับข้อมูลเพิ่มเติม
หากคุณต้องการคัดลอก / วางบรรทัดในvim
(ตรงข้ามกับการวางเนื้อหาคลิปบอร์ด) คุณจะต้องตรวจสอบคำสั่งyank นี่คือแผ่นโกงที่อาจช่วยได้
I
เป็นกรณี ๆ ไป ตัวพิมพ์เล็กi
เป็นวิธีปกติของการเข้าสู่โหมดแทรก Capital I
นำเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดจากนั้นเข้าสู่โหมดแทรก
Vi (และ Vim) ทำงานแตกต่างกันมากเมื่อเทียบกับโปรแกรมแก้ไขข้อความทั่วไปเช่น Gedit นอกจากนี้ยังมีช่วงการเรียนรู้ที่ค่อนข้างสูงชัน หากคุณต้องการเรียนรู้คำสั่งพื้นฐานเริ่มต้นด้วยบทช่วยสอนเชิงโต้ตอบนี้
อย่างไรก็ตามเพื่อตอบคำถามคุณ เนื้อหาของคลิปบอร์ดระบบสามารถเข้าถึงได้ผ่านการลงทะเบียนบวก ดังนั้นเพื่อวางบางสิ่งจากคลิปบอร์ดของระบบที่คุณสามารถทำได้จากโหมดปกติให้กด: "+p(ไม่ใช่ในเวลาเดียวกัน แต่หลังจากนั้นอีกทีหนึ่ง)
vi
ไม่ได้vim
set :paste
)
หากคุณต้องการคัดลอกเนื้อหาวางภายในไฟล์เดียวกันใช้และyank
paste
หากคุณต้องการคัดลอกเนื้อหาการวางข้ามเทอร์มินัลให้เปิดไฟล์แรกแล้วทำการโยนข้อความที่คุณต้องการจากนั้นเปิดไฟล์ที่สองของคุณภายในกลุ่ม (เช่น:tabnew /path/to/second/file
) แล้วกดp
เพื่อวาง
หากคุณต้องการคัดลอกเนื้อหาที่แปะจาก vim ไปยังโปรแกรมภายนอกคุณจะต้องเข้าถึงคลิปบอร์ดของระบบ ฉันถือว่าคุณใช้ Ubuntu เวอร์ชัน GUI ของ vim จะรองรับคลิปบอร์ดเสมออย่างไรก็ตามหากคุณต้องการใช้ Vim จากเทอร์มินัลคุณจะต้องตรวจสอบการรองรับ X11-clipboard
จากคอนโซลพิมพ์:
$ vim --version | grep xterm
หากคุณพบ-xterm_clipboardคุณมีสองตัวเลือก:
1) รวบรวมเสียงเรียกเข้าของคุณเองโดยเปิด xterm_clipboard
2) ถอนการติดตั้ง vim, ติดตั้งgvim (vim-gtk หรือ vim-gnome) แทน คุณสามารถใช้ vim ที่ไม่ใช่ gui ได้โดยการเรียก vim จากเทอร์มินัลเช่นเดียวกับที่คุณเคยทำมาก่อน คราวนี้เมื่อคุณตรวจสอบคุณควรจะหา+ xterm_clipborad
ตอนนี้เมื่อคุณงัดข้อความบางส่วนใน + ลงทะเบียนภายในแก้ไขเป็นกลุ่ม (เช่น "+ yy) ก็ยังได้รับการคัดลอกไปยังคลิปบอร์ดของระบบซึ่งคุณสามารถดึงข้อมูลจากโปรแกรมภายนอกของคุณเช่นบรรณาธิการ Gedit โดยใช้+CtrlV
หากคุณต้องการคัดลอกเนื้อหาวางจากโปรแกรมภายนอกเข้ามาเป็นกลุ่มแรกคัดลอกข้อความของคุณลงในคลิปบอร์ดระบบผ่านCtrl+ Cแล้วในการแก้ไขเป็นกลุ่มโหมดแทรกให้คลิกที่ปุ่มกลางของเมาส์ (มักจะล้อ) หรือกดCtrl+ Shift+ Vเพื่อวาง
นี่คือเงื่อนไขการคัดลอกและวางพื้นฐาน 4 ประการที่เกี่ยวข้องกับเสียงเรียกเข้า ฉันหวังว่านี่จะช่วยได้.
vim-gtk
ได้xterm_clipboard
รับการสนับสนุนและบน Fedora xvim
ก็มี
ฉันมักจะใช้Shift+ Insertเมื่อฉันต้องการวางข้อความในเทอร์มินัลทำงานในโปรแกรมเทอร์มินัลทั้งหมด
(ซึ่งเป็นเหตุผลที่ฉันไม่เคยซื้อแล็ปท็อปที่คุณไม่สามารถกดได้Insertโดยไม่ต้องกดคีย์รอง)
Vi
/ Vim
! = terminal;)
Ctrl+A
, Ctrl+C
ยัง?
ใช้ปุ่มกลางของเมาส์เพื่อแทรกข้อความที่คุณไฮไลต์ไว้ที่อื่น
มันจะมีประโยชน์เมื่อคุณไม่สามารถเข้าถึงคลิปบอร์ดระบบของคุณ (ตัวอย่างเช่นในเซสชัน SSH ระยะไกล)
ต้องอยู่ในโหมดแก้ไข / แทรกสำหรับ Vim
เมื่อคุณป้อน vi กดi
เพื่อเข้าสู่โหมดแทรกคลิกขวาที่เทอร์มินัลคลิกวาง
i
ผมคิดว่าเป็นกรณีที่ต่ำกว่า ตัวพิมพ์ใหญ่I
ทำอะไร
i
ฉันได้แก้ไขคำตอบจะเป็นกรณีที่ต่ำกว่า ตัวพิมพ์ใหญ่I
เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดก่อนเข้าสู่โหมดแทรกซึ่งไม่จำเป็นต้องใช้ที่นี่
คำแนะนำโดยละเอียดเพื่อคัดลอก / วางบรรทัดข้อความใน vi โดยใช้yank
และput
(ใช้สิ่งต่อไปนี้ในโหมดคำสั่งของ vi)
คัดลอก (YANK)
ในการคัดลอกหนึ่งบรรทัดใน vi:
yy
หรือพิมพ์Y
ในการคัดลอก 2 บรรทัดใน vi:
2yy
หรือพิมพ์2Y
(เช่นเดียวกันสามารถคัดลอกบรรทัดจำนวนเท่าใดก็ได้)
ในการคัดลอกทุกบรรทัดจากตำแหน่งปัจจุบันไปยังจุดสิ้นสุดของไฟล์:
yG
หากต้องการคัดลอกข้อความทั้งหมดจากตำแหน่งปัจจุบันไปยังจุดสิ้นสุดของคำปัจจุบัน:
yw
หากต้องการคัดลอกข้อความทั้งหมดจากตำแหน่งปัจจุบันไปยังจุดสิ้นสุดของบรรทัด:
y$
แปะ (PUT)
วิธีวางข้อความในคลิปบอร์ด - หลังตำแหน่งเคอร์เซอร์:
p
วิธีวางข้อความในคลิปบอร์ด - หน้าตำแหน่งเคอร์เซอร์:
P
ฉันมีปัญหาเนื่องจากการติดตั้ง Vim ของฉันไม่รองรับคลิปบอร์ด :
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 ตามลำดับ
ด้วย Vim 8+ บน Linux หรือ Mac ตอนนี้คุณสามารถใช้ native paste ของระบบปฏิบัติการ ( ctrl+shift+V
บน Linux, cmd+V
บน Mac) อย่ากดi
สำหรับโหมดแทรก
มันจะวางเนื้อหาของคลิปบอร์ด OS ของคุณรักษาช่องว่างและแท็บโดยไม่ต้องเพิ่มการใส่ข้อความอัตโนมัติ มันเทียบเท่ากับเก่า:set paste
, i
, ctrl+shift+V
, esc
, :set nopaste
วิธีการ
คุณไม่จำเป็นต้องมีคุณสมบัติ+clipboard
หรือ+xterm_clipboard
เป็นกลุ่มติดตั้งอีกต่อไป คุณสมบัตินี้เรียกว่า "pasteed paste" สำหรับรายละเอียดเพิ่มเติมดูhttps://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
หากคุณรูท : Ctrl+ Shift+V
หากคุณไม่รูท : ให้คลิกเมาส์ตรงกลาง
ฉันแค่อยากจะทราบว่าการใช้ Vim ผ่าน Git Bash บน Windows คุณสามารถใช้p
หรือคลิกกลางเมาส์ได้โดยไม่ต้องอยู่ในโหมดแทรก ใช้ Vim ผ่านPuTTYคุณสามารถคลิกขวา การทำสำเนาและการเน้น
ฉันได้สังเกตสิ่งนี้เพราะฉันมาที่นี่โดยไม่เห็นว่านี่คือ SE สำหรับ Ubuntu
คำสั่งที่เป็นประโยชน์อื่น ๆ :
คุณสามารถใช้Ctrl+ Shift+ Vเพื่อวางใน terminal เวอร์ชัน vim แต่สำหรับเวอร์ชัน GUI vim เช่นการNeovim-Qt
วางข้อความจากคลิปบอร์ดของระบบที่มีCtrl+ Shift+ Vจะไม่ทำงาน คุณต้องเข้าถึงคลิปบอร์ด"+
หรือ"*
ในเครื่องมือแก้ไขเสียงเรียกเข้า
การเพิ่มปุ่มลัดเข้าใหม่.vimrc
จะเป็นเพียงคำสั่งคัดลอก / วาง:
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
vimtutor
มันคุณจะได้รับขึ้นอยู่กับความเร็วในการที่มันสามารถใช้งานได้ให้กับคุณในประมาณ 45 นาที