วิธีการทำงานกับโหมดบรรทัดคำสั่งวิธีที่ vi?


10

มีวิธีการโต้ตอบกับโหมดบรรทัดคำสั่งในขณะที่ยังคงอยู่ในตำแหน่งที่บ้านหรือไม่?

โดยเฉพาะอย่างยิ่งการกระทำสองอย่างต่อไปนี้ยุ่งยากต้องเลื่อนนิ้วไปที่ปุ่มลูกศรและบางครั้งก็แย่กว่านั้นคือเมาส์

  1. ย้ายไปรอบ ๆ : มีวิธีการย้ายไปมาในโหมดบรรทัดคำสั่งในขณะที่ยังคงอยู่ในตำแหน่งปกติหรือไม่?
  2. คุณสามารถคัดลอกและวางบนบรรทัดคำสั่งได้อย่างไร ฉันหมายถึงการคัดลอกทั้งจากส่วนหนึ่งของบรรทัดคำสั่งไปยังส่วนอื่นหรือจากข้อความหรือคลิปบอร์ด

1
ทั้งสองสามารถแก้ไขได้โดยใช้หน้าต่างบรรทัดคำสั่งด้วย:q; สิ่งนี้จะเปิดหน้าต่าง "เหมือนบัฟเฟอร์" ใหม่ซึ่งคุณสามารถใช้hjklสำหรับการเคลื่อนไหวyสำหรับ yanking ฯลฯ
Martin Tournoij

1
@Carpetsmoker (คุณหมายถึงq:ใช่มั้ย) รู้ดี! ฉันเคยไปที่นั่นโดยไม่ได้ตั้งใจมาก่อน แต่ไม่ได้คิดถึงการใช้งาน ดูเหมือนว่าจะใช้งานไม่ได้กับ/(ค้นหา)
Shahbaz

โอ๊ะใช่ฉันหมายถึง q: ... ฉันไม่เคยใช้มันมากนักดังนั้นฉันจึงไม่สามารถให้คำตอบที่เหมาะสม / สมบูรณ์แบบได้ ...
Martin Tournoij

คำตอบ:


17

มีบรรทัดคำสั่ง (ที่คุณรู้) และมีหน้าต่างบรรทัดคำสั่ง (บรรทัดคำสั่งในบัฟเฟอร์พิเศษซึ่งคุณสามารถแก้ไขได้เหมือนกัน) คุณป้อนนี้ทั้งผ่าน<C-f>จากบรรทัดคำสั่ง (ยังสำหรับ/การค้นหาอื่น ๆ ) เมื่อคุณรู้สึกว่าจำเป็นที่จะต้องมากขึ้น "การแก้ไขอำนาจ" หรือโดยตรงจากโหมดปกติผ่านทุ่มเทq:, q/ฯลฯ คำสั่ง

:help command-line-windowอ่านข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ที่


4
<C-f>มีประโยชน์มากที่จะรู้เพราะมันทำงานหลังจากที่คุณผ่านทางคำสั่งไปแล้วครึ่งทาง
Shahbaz

1
ฉันเห็นด้วย; :มาเกือบโดยอัตโนมัติสำหรับฉันดังนั้นมันเป็นเรื่องดีที่จะสามารถสวิทช์โดยไม่ต้องไปกลับไปที่โหมดปกติ
Ingo Karkat

11

นอกเหนือจากการจัดเตรียมหน้าต่างบรรทัดคำสั่ง Vim ยังมีคุณสมบัติที่ จำกัด บางอย่างเพื่อให้คุณสามารถโต้ตอบกับบรรทัดคำสั่งในขณะที่อยู่ในโหมดบรรทัดคำสั่ง ( โดยไม่ต้องใช้ปุ่มลูกศร)

การเคลื่อนไหว

  • <ctrl-b> เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดคำสั่ง
  • <ctrl-e> เลื่อนเคอร์เซอร์ไปที่ท้ายบรรทัดคำสั่ง

การแก้ไข

  • <ctrl-h> ลบตัวละครหน้าเคอร์เซอร์ (เช่น backspace)
  • <ctrl-w> ลบคำก่อนเคอร์เซอร์
  • <ctrl-u> ลบทั้งหมดจากเคอร์เซอร์กลับไปที่จุดเริ่มต้นของบรรทัดคำสั่ง

แน่นอนคุณสามารถเพิ่มการแมปบรรทัดคำสั่งด้วย:cnoremapที่จะเลียนแบบแป้นนำทางบางโปรแกรมอื่นหรือติดตั้งปลั๊กอิน RSIของ Tim Pope เพื่อใช้การผูก Readline มาตรฐานอย่างแท้จริง

วาง

คุณสามารถวางเนื้อหาของการลงทะเบียนใด ๆ ลงในบรรทัดคำสั่งที่ตำแหน่งของเคอร์เซอร์ได้โดยการกด<ctrl-r>ตามด้วยอักขระที่ระบุการลงทะเบียน เช่น<ctrl-r>, +จะแทรกเนื้อหาของคลิปบอร์ดลงในบรรทัดคำสั่งนั้น <ctrl-r>, "จะแทรกเนื้อหาของ "ชื่อ" การลงทะเบียน (เช่นเนื้อหาของงัดลบที่ผ่านมาหรือของคุณ)

ดู:help cmdline.txtรายละเอียดเพิ่มเติมด้านบนทั้งหมด


1
! น่ากลัว <ctrl-r>จะเป็นประโยชน์อย่างยิ่ง
Shahbaz

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