หากคุณใช้ Vim คุณจะต้องใช้การลงทะเบียน Vim ทุกครั้งที่คุณคัดลอก/ลบข้อความ หรือดำเนินการคำสั่ง Vim จะจัดเก็บข้อมูลนี้ไว้ในรีจิสเตอร์ เมื่อคุณวางมัน Vim จะได้รับข้อมูลจากรีจิสเตอร์และดึงมันลงในบัฟเฟอร์ กล่าวอีกนัยหนึ่ง Vim register ทำหน้าที่เป็นคลิปบอร์ดเพื่อจัดเก็บข้อความและประวัติคำสั่ง
Vim มีรีจิสเตอร์ที่แตกต่างกันทั้งหมด 10 ประเภท ซึ่งแต่ละประเภทมีวัตถุประสงค์ที่แตกต่างกัน ในบทช่วยสอนนี้ ฉันจะสำรวจการลงทะเบียน Vim ประเภท และการใช้งาน
บันทึก : สำหรับบทช่วยสอนนี้ ฉันกำลังดำเนินการคำสั่งบน macOS Vim เป็นแอปพลิเคชันข้ามแพลตฟอร์ม ดังนั้นคำสั่งที่กล่าวถึงในคู่มือนี้จะนำไปใช้กับ Vim เวอร์ชันทั้งหมดโดยไม่คำนึงถึงระบบปฏิบัติการ
- ตัวดำเนินการลงทะเบียน Vim
- รายการทะเบียน
- การทำงานกับ Vim Registers
- ประเภทของ Vim Registers
- 1. การลงทะเบียนที่ไม่มีชื่อ (“”)
- 2. เลขทะเบียน (0-9)
- 3. การลงทะเบียนลบขนาดเล็ก (“-)
- 4. ชื่อผู้ลงทะเบียน (a-z หรือ A-Z)
- 5. การลงทะเบียนแบบอ่านอย่างเดียว (., %, 🙂
- 6. การลงทะเบียนบัฟเฟอร์สำรอง (“#)
- 7. การลงทะเบียนนิพจน์ (“=)
- 8. การเลือกและการลงทะเบียนการลงทะเบียน (“*, “+, “~)
- 9. การลงทะเบียนหลุมดำ (“_)
- 10. การลงทะเบียนรูปแบบการค้นหาล่าสุด (“/)
- รีจิสเตอร์และมาโคร
- เคลียร์ทะเบียน
- บทสรุป
ตัวดำเนินการลงทะเบียน Vim
รีจิสเตอร์ใน Vim สามารถใช้งานได้โดยใช้การดำเนินการต่างๆ เช่น การคัดลอก การลบ หรือการเปลี่ยนแปลง การดำเนินการแต่ละครั้งจะมีโอเปอเรเตอร์เฉพาะ เช่น หากต้องการดึงข้อความ y จะใช้โอเปอเรเตอร์ ในขณะที่ลบข้อความ จะใช้โอเปอเรเตอร์ d รายชื่อผู้ประกอบการที่ได้รับการว่าจ้างโดยทั่วไปมีดังต่อไปนี้:
ใช่ | แยงค์ส (สำเนา) เส้น |
วว | ลบบรรทัด |
ซีซี | ลบบรรทัดและเปิดใช้งานโหมด INSERT |
ส | ลบอักขระและเริ่มโหมด INSERT เพื่อทดแทน |
x | ลบอักขระใต้เคอร์เซอร์ |
คิว |
มาโคร; เก็บชุดคำสั่งไว้ในรีจิสเตอร์เฉพาะ |
หากต้องการพิมพ์ข้อความที่เก็บไว้ พี หรือ ป มีการใช้ตัวดำเนินการ:
พี | วาง (วาง) ข้อความหลังเคอร์เซอร์ |
ป | วางข้อความไว้หน้าเคอร์เซอร์ |
คำสั่งเหล่านี้ก็นับเช่นกัน เช่น หากต้องการคัดลอก 10 บรรทัด ให้ใช้เครื่องหมาย 10ปป คำสั่งในทำนองเดียวกันเพื่อวางสำเนา 10 ของการใช้บรรทัดที่ถูกดึง 10น .
รายการทะเบียน
หากต้องการแสดงรายการรีจิสเตอร์ทั้งหมดให้ใช้ :ลงทะเบียน หรือ :reg คำสั่งและเพื่อแสดงรายการการลงทะเบียนเฉพาะให้ใช้ :reg “
ในทำนองเดียวกัน หากต้องการแสดงรายการเนื้อหาของการลงทะเบียนหลายรายการ ให้ใช้ :reg “
ในรายการลงทะเบียน คุณจะเห็นสามคอลัมน์ ชื่อ ประเภท และเนื้อหา . ในที่นี้ Type หมายถึงประเภทเนื้อหา ไม่ใช่ประเภทรีจิสเตอร์ สาม ประเภท ของเนื้อหาสามารถแก้ไขได้ด้วยการลงทะเบียน
- ล : เส้นฉลาด
- ค : ตัวละครฉลาด
- ข : บล็อกฉลาด
ตัวอย่างเช่น หากเนื้อหาถูกคัดลอกโดยใช้การดำเนินการตามบรรทัด (ใช่) จากนั้นประเภทเนื้อหาจะเป็น ล ถ้าเป็นตัวละคร (ใช่) แล้วชนิดจะเป็น ค และหากเนื้อหาถูกคัดลอกแบบบล็อก (ctrl+v และ y) จากนั้นประเภทจะแสดงเป็น ข .
การทำงานกับ Vim Registers
รีจิสเตอร์ Vim สามารถใช้เพื่อจัดเก็บเนื้อหาโดยใช้การดึง ลบ และเปลี่ยนตัวดำเนินการ เนื้อหาที่เก็บไว้สามารถเข้าถึงได้โดยใช้ตัวดำเนินการใส่
การบันทึกข้อความลงในทะเบียน
เมื่อคุณกดปุ่ม ใช่ ปุ่มคัดลอกบรรทัดจะถูกบันทึกลงในรีจิสเตอร์เริ่มต้นที่เรียกว่ารีจิสเตอร์ที่ไม่มีชื่อ (“”) . เพื่อจัดเก็บบรรทัดที่คัดลอกไปยังการลงทะเบียนเฉพาะ ใบเสนอราคา (“) ตามด้วยชื่อรีจิสเตอร์และโอเปอเรเตอร์ที่ใช้
ตัวอย่างเช่น หากต้องการคัดลอกบรรทัดไปยังชื่อรีจิสเตอร์ กับ ใช้ ' จี๊ด . ในทำนองเดียวกัน หากคุณเลือกหลายบรรทัดในโหมดภาพ ให้ใช้ “ ซี่ เพื่อจัดเก็บบรรทัดใน z register
การเข้าถึงทะเบียน
ในการเข้าถึงการลงทะเบียน Vim ใบเสนอราคา (“) สัญลักษณ์ใช้กับชื่อทะเบียนและ พี/พี ตัวดำเนินการ
ตัวอย่างเช่น หากชื่อรีจิสเตอร์คือ z และเพื่อเข้าถึงเนื้อหาของรีจิสเตอร์ thIS ให้ใช้ “ zp ในโหมดปกติ อย่างไรก็ตาม หากต้องการดำเนินการเดียวกันในโหมด INSERT ให้ใช้ Ctrl+r z .
“ |
โหมดปกติ | ในการจัดเก็บเนื้อหาให้ใช้คำพูด (“) , ชื่อทะเบียน (ก-ฮ) และตัวดำเนินการ (y, ปปปป ง ค หรือซีซี) |
“ |
โหมดปกติ | หากต้องการวางเนื้อหาของใบเสนอราคาให้ใช้การลงทะเบียน (“) , ชื่อทะเบียน (ก-ฮ) และ พี/พี ตัวดำเนินการ |
Ctrl+r |
แทรกโหมด | หากต้องการวางเนื้อหาของรีจิสเตอร์ ให้ใช้ Ctrl+R และลงทะเบียนชื่อ (ก-ฮ) |
คุณมีแนวคิดพื้นฐานของการลงทะเบียน Vim ตอนนี้ผมจะมาพูดคุยเจาะลึกเกี่ยวกับการลงทะเบียนแต่ละประเภทและการใช้งาน
ประเภทของ Vim Registers
ใน Vim มีรีจิสเตอร์ 10 ประเภทที่ออกแบบมาเพื่อวัตถุประสงค์เฉพาะ
- ทะเบียนไม่มีชื่อ (“”)
- เลขทะเบียน (0-9)
- รีจิสเตอร์ลบขนาดเล็ก (“-)
- ผู้ลงทะเบียนที่มีชื่อ (a-z หรือ A-Z)
- การลงทะเบียนแบบอ่านอย่างเดียว (“:, “., “%)
- การลงทะเบียนไฟล์สำรอง (“#)
- การลงทะเบียนนิพจน์ (“=)
- การเลือกและการลงทะเบียนการลงทะเบียน (“*, “+, +~)
- การลงทะเบียนหลุมดำ (“_)
- การลงทะเบียนรูปแบบการค้นหาล่าสุด (“/)
1. การลงทะเบียนที่ไม่มีชื่อ (“”)
เป็นการลงทะเบียนเริ่มต้นของ Vim เพื่อจัดเก็บข้อความที่ถูกดึงหรือลบโดยใช้ ใช่, ใช่, ง, วว, ส, หรือ x คำสั่ง
ที่ :reg “” คำสั่งสามารถใช้เพื่อแสดงรายการเนื้อหาที่เก็บไว้ในการลงทะเบียนที่ไม่มีชื่อ
หากต้องการวางเนื้อหารีจิสเตอร์ที่ไม่มีชื่อ ให้ใช้คำสั่ง put (พีหรือพี) สั่งการ. โดยค่าเริ่มต้น พี คำสั่งทำให้ที่เก็บเนื้อหาอยู่ในรีจิสเตอร์ที่ไม่มีชื่อ หรืออีกทางหนึ่ง ข้อมูลที่จัดเก็บไว้ในรีจิสเตอร์ที่ไม่มีชื่อสามารถวางได้โดยใช้คำสั่ง “”p
ในตัวอย่างต่อไปนี้ ฉันได้คัดลอกบรรทัดโดยใช้ ใช่ คำสั่งแล้วใส่ 5 ครั้งโดยใช้การนับ 5 กับ p (5p)
2. เลขทะเบียน (0-9)
รีจิสเตอร์ที่มีหมายเลขใช้เพื่อจัดเก็บข้อความที่ถูกดึงหรือลบล่าสุด
การลงทะเบียน 0 แตกต่างจากทะเบียน 1-9 . การลงทะเบียน 0 จะเก็บข้อความที่ดึงล่าสุดเสมอ เช่น ถ้าฉันดึงสายโดยใช้ ใช่ คำสั่งบรรทัดจะถูกเก็บไว้ในทั้ง ไม่มีชื่อ และ 0 ลงทะเบียน
ตอนนี้ถ้าฉันลบบรรทัดโดยใช้ วว บรรทัดที่ถูกลบจะถูกเก็บไว้ในการลงทะเบียนและการลงทะเบียนที่ไม่มีชื่อ 1 ในขณะที่ข้อความที่ถูกดึงครั้งสุดท้ายจะยังคงอยู่ในรีจิสเตอร์ 0 . ดังนั้นคุณจึงสามารถเข้าถึงข้อความที่ถูกดึงล่าสุดได้ตลอดเวลาผ่านการลงทะเบียน 0 .
ผู้ลงทะเบียน 1-9 เก็บข้อความที่ถูกลบล่าสุด เช่น ถ้าฉันลบบรรทัดโดยใช้ วว คำสั่งข้อความที่ถูกลบจะถูกเก็บไว้ในทั้งที่ไม่มีชื่อและลงทะเบียน 1 . ลงทะเบียน 1 จะเก็บข้อความที่ถูกลบล่าสุด หากฉันลบอีกบรรทัดข้อความที่ถูกลบก่อนหน้านี้จะย้ายไปลงทะเบียน 2 และล่าสุดจะถูกเก็บไว้ในที่ไม่มีชื่อและลงทะเบียน 1 . โดยพื้นฐานแล้วการลงทะเบียนที่มีหมายเลข (1-9) เก็บประวัติข้อความที่ถูกลบ
มาทำความเข้าใจการลงทะเบียนหมายเลขพร้อมตัวอย่างกัน ไฟล์ข้อความ Vim ต่อไปนี้ประกอบด้วย 10 บรรทัด มาดึงกัน บรรทัดที่ 3 โดยใช้ ใช่ สั่งการ. ตอนนี้ เรามาตรวจสอบสถานะของรีจิสเตอร์โดยใช้คำสั่ง :reg
เส้นที่ดึงออกปัจจุบันอยู่ใน ไม่มีชื่อ และ 0 ลงทะเบียน ตอนนี้เรามาลบบรรทัดทั้งหมดทีละบรรทัดโดยใช้ วว สั่งการ. สุดท้ายนี้ บรรทัดที่ 10 จะอยู่ในการลงทะเบียนที่ไม่มีชื่อและการลงทะเบียน 1 ในเวลาเดียวกัน บรรทัดอื่น ๆ ที่ถูกลบจะถูกเก็บไว้ในการลงทะเบียน 2-9 ตามลำดับจากน้อยไปหามาก
คุณสามารถเข้าถึงบรรทัดเหล่านี้ได้โดยใช้ พี สั่งการ. เช่น ใส่ข้อความ register 9 ใช้ “9น . นอกจากนี้หากต้องการใส่ค่า register 9 5 ครั้ง ใช้ “95น .
3. การลงทะเบียนลบขนาดเล็ก (“-)
รีจิสเตอร์นี้จะจัดเก็บข้อความที่ถูกลบหากมีขนาดน้อยกว่าบรรทัด โดยใช้คำสั่งเช่น x, รุ่งอรุณ, ดิว, ตบเบา ๆ, และ อีกครั้ง . นอกจากนี้หากคุณลบข้อความบางส่วนโดยใช้ ภาพ โหมดการเลือก และหากน้อยกว่าบรรทัด ก็จะถูกจัดเก็บไว้ในรีจิสเตอร์ลบขนาดเล็ก ในกลุ่มประโยค หมายถึงประโยคที่สมบูรณ์ซึ่งลงท้ายด้วยจุด
เช่น ในไฟล์ต่อไปนี้ ฉันเลือก 3 คำ ความร่วมมือและการสนับสนุน จากบรรทัดที่ 9 และลบออกโดยใช้ ง ตัวดำเนินการ รีจิสเตอร์ลบขนาดเล็กจะถูกใช้เพื่อบันทึกการเลือกนี้ เนื่องจากมีความยาวไม่เกินหนึ่งบรรทัด ใช้ :reg “- คำสั่งเพื่อแสดงรายการเนื้อหาของการลงทะเบียนการลบขนาดเล็ก
4. ชื่อผู้ลงทะเบียน (a-z หรือ A-Z)
การลงทะเบียนที่มีชื่อใช้เพื่อจัดเก็บข้อความเฉพาะของผู้ใช้ ดังนั้นหากคุณต้องการจัดเก็บข้อความในรีจิสเตอร์แบบกำหนดเองล่ะก็ 26 ลงทะเบียนจาก ก ถึง กับ สามารถใช้ได้.
ตัวอย่างเช่น ฉันกำลังดึงบรรทัดในไฟล์ต่อไปนี้โดยใช้ “ จี๊ด ข้อความจะถูกเก็บไว้ใน กับ ลงทะเบียนตามภาพต่อไปนี้
การลงทะเบียนชื่อตัวพิมพ์เล็กและตัวพิมพ์ใหญ่มีวัตถุประสงค์ที่แตกต่างกัน ตัวอย่างเช่น หากข้อความถูกบันทึกในทะเบียนตัวพิมพ์เล็ก ดังนั้นเพื่อที่จะแทนที่ข้อความของทะเบียนนั้น ทะเบียนตัวพิมพ์เล็กจะถูกนำมาใช้ อย่างไรก็ตาม หากต้องการเพิ่มข้อความต่อท้ายทะเบียนตัวพิมพ์เล็ก จะใช้ทะเบียนตัวพิมพ์ใหญ่ที่มีชื่อเดียวกัน
มาทำความเข้าใจผ่านตัวอย่างกันดีกว่า จากไฟล์ต่อไปนี้ ฉันเก็บบรรทัดที่ 8 ไว้ในรีจิสเตอร์ x โดยใช้ ' ไชโย .
หากต้องการเพิ่มข้อความต่อท้ายบรรทัดนี้ ฉันจะเลือกคำสองสามคำในโหมดภาพก่อน หากต้องการต่อท้ายข้อความที่เลือก ฉันจะใช้ “เอ็กซ์ สั่งการ.
หากต้องการแทนที่ข้อความ ฉันจะใช้เครื่องหมาย “ ไชโย .
5. การลงทะเบียนแบบอ่านอย่างเดียว (., %, 🙂
Vim มีรีจิสเตอร์แบบอ่านอย่างเดียว 3 รีจิสเตอร์ที่เก็บสิ่งที่แทรกไว้ ข้อความ, ชื่อไฟล์, และ ดำเนินการครั้งสุดท้าย สั่งการ.
. | เก็บข้อความที่แทรกล่าสุด |
% | เก็บชื่อไฟล์ |
: : | เก็บคำสั่งที่ดำเนินการล่าสุด |
การลงทะเบียนเหล่านี้เป็นชื่อที่แนะนำไม่สามารถแก้ไขได้ แต่สามารถเข้าถึงได้ง่าย
หากต้องการใส่ข้อความที่แทรกล่าสุด ให้ใช้ “.ป สั่งการ.
หากต้องการพิมพ์ชื่อไฟล์ ให้ใช้ “%p สั่งการ.
หากต้องการพิมพ์คำสั่งสุดท้าย ให้ใช้ “:น.
ที่ @: คำสั่งสามารถใช้เพื่อทำซ้ำคำสั่งก่อนหน้าในกลุ่ม ในตัวอย่างต่อไปนี้ ฉันได้ลบ 3 บรรทัดแรกแล้วเมื่อกด @: ลบออกไปอีก 3 บรรทัด จึงทำซ้ำคำสั่งก่อนหน้า
6. การลงทะเบียนบัฟเฟอร์สำรอง (“#)
บัฟเฟอร์สำรองคือไฟล์ที่ถูกเปิดในบัฟเฟอร์ปัจจุบัน “# register จะเก็บชื่อไฟล์ของไฟล์ที่บัฟเฟอร์ไว้ในบัฟเฟอร์ปัจจุบัน มาเปิดไฟล์อื่นในบัฟเฟอร์เดียวกันโดยใช้ :e ~/.vimrc คำสั่ง โปรดทราบว่าชื่อไฟล์ปัจจุบันคือ ไฟล์.txt .
หากต้องการปิดบัฟเฟอร์ที่เปิดอยู่ ให้ใช้ :bdelete หรือ :bwipeout สั่งการ. ตอนนี้คุณสามารถดูชื่อไฟล์สำรองที่บันทึกไว้ในไฟล์ “# ลงทะเบียน.
7. การลงทะเบียนนิพจน์ (“=)
การลงทะเบียนนิพจน์คือการลงทะเบียนเฉพาะที่ไม่ได้ใช้ในการจัดเก็บข้อความ แต่จะเก็บนิพจน์แทน ตัวอย่างเช่น หากคุณมีตัวเลขสองสามตัวในไฟล์ เพื่อรวมตัวเลขเหล่านี้ นิพจน์ Vim จะถูกนำมาใช้
การลงทะเบียนนี้สามารถเข้าถึงได้โดยใช้ “= ในโหมดปกติ และ Ctrl+r = ในโหมดแทรก
ตัวอย่างเช่น หากต้องการค้นหาความแตกต่างระหว่างตัวเลขสองตัว ให้กด “= แล้วเครื่องหมายเท่ากับจะปรากฏในแถบสถานะ ตอนนี้พิมพ์ตัวเลขทั้งสองโดยมีเครื่องหมายลบ (-) อยู่ในนั้นแล้วกดปุ่ม เข้า สำคัญ. ตอนนี้ หากต้องการพิมพ์ความแตกต่าง ให้กด พี หรือใช้ :ใส่ สั่งการ.
ในการเข้าถึงค่าของการลงทะเบียนนิพจน์ ให้ใช้ :reg “= สั่งการ.
ในทำนองเดียวกัน หากต้องการหาค่าสัมบูรณ์ของตัวเลขสองตัว ให้ใช้ =abs(value1-value2) การแสดงออก.
ในทำนองเดียวกัน ในการจัดเก็บเอาต์พุตของคำสั่งระบบ คุณสามารถใช้รีจิสเตอร์ (นิพจน์) นี้ เช่น ถ้าฉันต้องการอ่านเนื้อหาของไฟล์ฉันจะใช้ =system('cat <ชื่อไฟล์>') เมื่อกดปุ่ม Return เนื้อหาของเอาต์พุตจะถูกจัดเก็บ ใช้ พี หรือ :ใส่ คำสั่งสามารถใส่เนื้อหาของเอาต์พุตลงในบัฟเฟอร์ได้
มีสำนวนมากมายที่สามารถใช้ใน Vim ได้ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับนิพจน์ Vim ให้ใช้ :ช่วยแสดงออก และ :help นิพจน์ไวยากรณ์ คำสั่ง
8. การเลือกและการลงทะเบียนการลงทะเบียน (“*, “+, “~)
Vim มีการลงทะเบียนการเลือกสองรายการ “* (เครื่องหมายคำพูด) และ “+ (quoteplus) ซึ่งใช้จัดเก็บข้อความจาก GUI รีจิสเตอร์เหล่านี้ใช้เพื่อคัดลอกข้อความจากโปรแกรมภายนอก เช่น เบราว์เซอร์หรือโปรแกรมประมวลผลคำอื่นๆ
ตัวอย่างเช่น หากคุณคัดลอกข้อความที่เลือกจากเบราว์เซอร์ โดยใช้ Ctrl+ค หรือ cmd+ค มันจะถูกเก็บไว้ใน “* ลงทะเบียน. อย่างไรก็ตาม คุณไม่สามารถใช้ พี หรือ :ใส่ เพื่อวางข้อความนี้ในตัวแก้ไข Vim ใช้ “*น เพื่อใส่ข้อความลงในโปรแกรมแก้ไข Vim ที่คัดลอกมาจากแอปพลิเคชันภายนอก
สิ่งสำคัญคือต้องทราบว่าทั้งสองอย่าง “+ และ “* รีจิสเตอร์เชื่อมต่อกับคลิปบอร์ด ดังนั้นทั้งคู่ (“*พี, “+พี) สามารถใช้เพื่อวางข้อความลงในโปรแกรมแก้ไข Vim ในทำนองเดียวกัน หากต้องการใส่ข้อความจาก Vim ให้ใช้ “*ใช่ เพื่อดึงเส้นแล้ววางลงในแอปพลิเคชัน GUI ใด ๆ ให้ใช้ Ctrl+v หรือ cmd+v
เป็นสิ่งสำคัญที่จะต้องทราบว่าหากทั้งสองลงทะเบียน (* & +) กำลังทำสิ่งเดียวกัน แล้วประเด็นคืออะไร? Vim มีการลงทะเบียนการเลือกสองรายการ “*, “+ ทำงานเหมือนเดิมและนั่นเป็นเพราะระบบหน้าต่าง X11 X11 มีสองวิธีในการจัดเก็บข้อความ วิธีแรกคือ การเลือก และอีกอย่างคือ ตัดบัฟเฟอร์ . แอปพลิเคชันเป็นเจ้าของตัวเลือกและจะหายไปเมื่อปิดแอปพลิเคชัน ในขณะที่บัฟเฟอร์ที่ตัดจะเก็บข้อความไว้ใน X-server สำหรับพื้นที่จัดเก็บข้อมูลทั้งสองประเภทนี้ จะใช้รีจิสเตอร์ “* และ “+ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ ให้ใช้ :help x11-selection สั่งการ.
ต่อไป วางการลงทะเบียน “~ ซึ่งใช้สำหรับจัดเก็บข้อความจากการลากและวางครั้งล่าสุด ตัวอย่างเช่น หากคุณทิ้งการเลือกข้อความจากแอปพลิเคชันภายนอก ข้อความนั้นจะถูกจัดเก็บไว้ใน drop register
หากคุณพบว่าการวางจากแอปพลิเคชันภายนอกโดยใช้คีย์ที่แตกต่างกันสามคีย์ทำได้ยาก คุณสามารถแมปส่วนที่เลือกเพื่อจัดเก็บไว้ในรีจิสเตอร์ที่ไม่มีชื่อได้
เปิด vimrc ไฟล์, ชุดสถานที่ คลิปบอร์ด=ไม่มีชื่อ ในนั้นและบันทึกไฟล์ ตอนนี้เมื่อใดก็ตามที่คุณคัดลอกจากแอปพลิเคชันภายนอก ก็สามารถวางได้อย่างง่ายดายโดยใช้ :ใส่ คำสั่งหรือปุ่ม p
บันทึก : drop register (~) จะใช้ได้ก็ต่อเมื่อ Vim คอมไพล์ด้วย +dnd ปัจจุบันใช้ได้เฉพาะกับ GTK GUI เท่านั้น
9. การลงทะเบียนหลุมดำ (“_)
หากคุณทำการคัดลอกหรือลบในตัวแก้ไข Vim โดยค่าเริ่มต้นจะเก็บข้อความไว้ในรีจิสเตอร์ หากคุณต้องการลบข้อความโดยไม่จัดเก็บไว้ในรีจิสเตอร์ ให้ใช้รีจิสเตอร์หลุมดำ การลงทะเบียนนี้จะไม่แก้ไขการลงทะเบียนที่ไม่มีชื่อ (“”) เมื่อลบข้อความ
ตัวอย่างเช่น หากฉันต้องการลบบรรทัดทั้งหมดโดยไม่เก็บไว้ในทะเบียนที่ไม่มีชื่อ ฉันจะเลือกบรรทัดทั้งหมดก่อนโดยใช้ ggVG แล้วกด “_ง ปุ่มเพื่อลบบรรทัดทั้งหมด ในทำนองเดียวกัน หากต้องการลบเส้นเดียวบนหลุมดำ ให้ใช้ “_dd .
10. การลงทะเบียนรูปแบบการค้นหาล่าสุด (“/)
ตามชื่อที่แนะนำ รีจิสเตอร์นี้จะบันทึกรูปแบบการค้นหาล่าสุดโดยใช้ / หรือ ? ตัวดำเนินการ เช่น หากคุณค้นหา /ลินุกซ์ จากนั้นจึงใช้ “/น จะวางคำว่า Linux
Vim ใช้รีจิสเตอร์นี้เพื่อนำทางด้วย n และ เอ็น ปุ่มหลังจากการค้นหา
เป็นรีจิสเตอร์แบบเขียนได้ เนื้อหาสามารถเปลี่ยนแปลงได้โดยใช้ :let ตัวอย่างเช่น หากต้องการบันทึก Linux ลงในรีจิสเตอร์นี้ ให้ใช้ :let @/='Linux'
รีจิสเตอร์และมาโคร
ใน Vim มาโครจะถูกบันทึกในรีจิสเตอร์ที่มีชื่อ (a-z) ด้วย หากคุณไม่ทราบถึงแมโคร แมโครจะถูกตั้งค่าคำสั่งที่จัดเก็บไว้ในรีจิสเตอร์ ชุดคำสั่งนี้สามารถดำเนินการได้โดยใช้เครื่องหมาย @ ตามด้วยชื่อมาโครรีจิสเตอร์ โดยพื้นฐานแล้ว มาโครจะขจัดความจำเป็นในการพิมพ์คำสั่งหลายคำสั่งซ้ำๆ
ตัวอย่างเช่น เมื่อต้องการจัดเก็บแมโครลงในรีจิสเตอร์ ม ฉันจะใช้ qm<ชุดคำสั่ง>q . ฉันต้องการที่จะย้ายไปที่ 5 เส้นลงโดยใช้ 5จ และลบบรรทัดโดยใช้ วว . ใช้, คิวเอ็ม เพื่อเริ่มการบันทึกมาโคร จากนั้นกด 5จ และ วว . ตอนนี้ หากต้องการออกจากการบันทึกมาโคร ให้กด ถาม . เพื่อตรวจสอบว่าแมโครถูกจัดเก็บหรือไม่ใช้งาน :reg “m หรือ :reg m.
หากต้องการดำเนินการคำสั่งเหล่านี้ด้วยการลงทะเบียนแมโคร ให้ใช้ :@ม สั่งการ.
เคลียร์ทะเบียน
ไม่มีแนวทางที่ตรงไปตรงมาในการล้างข้อมูลทะเบียน เนื่องจากทะเบียนส่วนใหญ่ไม่จำเป็นต้องถูกล้าง เนื่องจากในที่สุดแล้วจะถูกเขียนทับ อย่างไรก็ตาม มีเทคนิคบางประการในการล้างค่ารีจิสเตอร์ในตัวแก้ไข Vim
1. บันทึกแมโครว่างเพื่อล้างการลงทะเบียน ตัวอย่างเช่น หากต้องการล้าง register m ให้ใช้ ตร.ม .
2. ตั้งค่าข้อความว่างโดยใช้ อนุญาต . ตัวอย่างเช่น หากต้องการล้าง register m ให้ใช้ :let @m=”.
3. ใช้ เซเรก() ฟังก์ชันที่มีสตริงว่างเป็นอาร์กิวเมนต์ ตัวอย่างเช่นหากต้องการล้างการลงทะเบียน m ให้ใช้ :call setreg('m', ”)
บทสรุป
มีรีจิสเตอร์ที่แตกต่างกัน 10 รายการพร้อมฟังก์ชันการทำงานที่แตกต่างกัน ซึ่งทำให้แทบจำไม่ได้ หากคุณเป็นมือใหม่ ฉันขอแนะนำให้คำนึงถึงการลงทะเบียนเพียงสามรายการเท่านั้น การลงทะเบียนที่ไม่มีชื่อ (“”) , เลขทะเบียน (0-9) และตั้งชื่อทะเบียน (ก-ฮ) .
หากต้องการจัดเก็บข้อความในการลงทะเบียน ให้ใช้เครื่องหมายคำพูด (“) ลงชื่อด้วยชื่อรีจิสเตอร์ตามด้วยคำสั่งโอเปอเรเตอร์ (ใช่ ง ค) . หากต้องการวางข้อความจากรีจิสเตอร์ ให้ใช้คำสั่ง p หรือ P ที่นำหน้าด้วยเครื่องหมายคำพูด (“) และลงทะเบียนชื่อ
คุณต้องเคยได้ยินเรื่องนี้มาก่อน หากคุณทำงานมากกว่าสองครั้ง ให้ทำให้เป็นอัตโนมัติ การลงทะเบียน Vim มีประโยชน์อย่างมากในการทำงานอัตโนมัติและปรับปรุงประสบการณ์ในท้ายที่สุด หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการลงทะเบียน Vim ให้ใช้ :ช่วยลงทะเบียน สั่งการ.