ฉันรู้ว่าฉันได้ดูเอกสาร VI ทั้งหมดนี้เป็นล้านครั้งแล้ว แต่ฉันดูเหมือนจะไม่พบคำสั่งลบจากเคอร์เซอร์ไปยังจุดสิ้นสุดบรรทัด
ฉันรู้ว่าฉันได้ดูเอกสาร VI ทั้งหมดนี้เป็นล้านครั้งแล้ว แต่ฉันดูเหมือนจะไม่พบคำสั่งลบจากเคอร์เซอร์ไปยังจุดสิ้นสุดบรรทัด
คำตอบ:
คำสั่งdwจะลบจากตำแหน่งเคอร์เซอร์ปัจจุบันไปยังจุดเริ่มต้นของอักขระคำถัดไป คำสั่งd$(หมายเหตุนั่นคือเครื่องหมายดอลลาร์ไม่ใช่ 'S') จะลบจากตำแหน่งเคอร์เซอร์ปัจจุบันไปยังจุดสิ้นสุดของบรรทัดปัจจุบัน เป็นคำพ้องสำหรับDd$
dw
แต่ฉันเดาว่าฉันแค่คิดว่าจะมีคำสั่ง "ลบส่วนที่เหลือของบรรทัดนี้" ยกตัวอย่างเช่นบรรทัดของฉันมีip=|10.1.1.1
กับ|
การเป็นที่ตั้งของเคอร์เซอร์ มีคำสั่งที่จะลบทั้งหมด10.1.1.1
หรือไม่
d$
:!rm -f %
:q!
นั่นเป็นการลบไฟล์ทั้งหมด
d^
('d' + คาเร็ต) ... โดยทั่วไป d + ตัวละครใด ๆ ที่ปกติจะย้ายเคอร์เซอร์ฉันคิดว่า แต่ฉันกำลังเรียนรู้กลุ่มตัวเองดังนั้นฉันอาจจะผิดที่
ตามที่คนอื่น ๆ พูดถึง: คุณสามารถใช้d$
หรือD
( shift- d) เพื่อลบออกจากตำแหน่งเคอร์เซอร์จนถึงจุดสิ้นสุดของบรรทัด
สิ่งที่ฉันมักพบว่ามีประโยชน์มากกว่าคือc$
หรือC
( shift- c) เพราะมันจะลบออกจากตำแหน่งเคอร์เซอร์จนถึงจุดสิ้นสุดของบรรทัดและนำคุณเข้าสู่โหมด [INSERT]
D
สำหรับคนส่วนใหญ่ในความคิดของฉันเพราะมันจะไม่ย้ายคุณกลับไปที่ช่องว่างท้ายบรรทัด
i
แทรกซึ่งแทรกก่อนเคอร์เซอร์และa
ที่แทรกหลังเคอร์เซอร์ a
หากเคอร์เซอร์ของคุณอยู่ที่ท้ายบรรทัดและคุณต้องการแทรกที่ท้ายบรรทัดที่คุณก็สามารถใช้
หนึ่งในสิ่งที่ดีเกี่ยวกับ vi คือโครงสร้างคำสั่งแบบลอจิคัล d
ตามด้วยคำสั่งการเคลื่อนไหวd eletes ไปยังเป้าหมายของการเคลื่อนไหวนั้น $
ย้ายไปยังจุดสิ้นสุดของบรรทัด (mnemonic: like in regexps) ดังนั้นd$
ลบไปยังจุดสิ้นสุดของบรรทัด ในทำนองเดียวกันการe
ย้ายไปยังอีครั้งของคำในปัจจุบันและw
ย้ายไปยังจุดเริ่มต้นของถัดไปWอ๊อด; ดังนั้นde
จะลบจุดสิ้นสุดของคำปัจจุบันและdw
ลบช่องว่างต่อไปนี้เพิ่มเติม
<kbd>
สำหรับปุ่มจริงไม่ใช่สำหรับลำดับคำสั่ง เช่นแต่<kbd>Ctrl</kbd>+<kbd>C</kbd>
d$
คุณอาจต้องการใช้ D. เลื่อนเคอร์เซอร์ไปที่อักขระตัวแรกที่คุณต้องการลบจากนั้นกด Shift-D ทุกอย่างหายไป ที่จริงมันอยู่ในบัฟเฟอร์การตัดเริ่มต้นดังนั้นคุณสามารถ P หรือ p วางกลับมา
ฉันใช้ Dp (ลบไปยังจุดสิ้นสุดของบรรทัดจากนั้นนำกลับมาใหม่) ย้ายไปยังจุดสิ้นสุดของบรรทัดอื่นแล้ว p อีกครั้งเพื่อวางข้อความเดียวกันในตอนท้ายของบรรทัดนี้ ใช้งานสิ่งมหัศจรรย์ในไฟล์กำหนดค่าได้โดยที่คุณต้องใส่ URL ที่ซับซ้อนไว้ในที่สองแห่งขึ้นไป
ฉันคิดว่าช็อตคัตโหมดแทรกอาจมีประโยชน์
ในโหมดแทรกอาจจะเป็นการดีกว่าที่จะเริ่มเปลี่ยนจนกระทั่งถึงจุดสิ้นสุดบรรทัด (วางสิ่งนี้ไว้บนของคุณ~/.vimrc
):
inoremap <C-l> <C-o>C
ดังที่คุณได้กล่าวไว้DในโหมดปกติและCtrl+ lในโหมดแทรก อย่างที่คุณเห็นคุณมีเช่นกันCที่เริ่มเปลี่ยนไปจนจบบรรทัด
<C-o> ......... insert normal keystroke in insert mode
ฉันได้เลือกCtrl- lเพราะl
อยู่ภายใต้มือของคุณ The Ctrl- kใช้สำหรับแทรก digraphs ไปแล้ว
ฉันได้ค้นหาผ่าน:h i_Ctrl
การโยงคีย์ฟรีและเป็นปัญหาใหญ่กว่าเมื่อมันมาถึงการสร้างทางลัดใหม่เพื่อดำเนินการในกลุ่ม
ในการลบช่วงของเส้นจากหลังตำแหน่งเคอร์เซอร์3Dจะลบจากเคอร์เซอร์จนถึงจุดสิ้นสุดของบรรทัดรวมถึงสองบรรทัดถัดไปโดยสมบูรณ์ (เช่นลบ 3 บรรทัดหลังตำแหน่งเคอร์เซอร์)
เช่นสำหรับข้อความต่อไปนี้ (เคอร์เซอร์แทนด้วย|
),
If there's a cursor |in the line
here
we
go
การใช้คำสั่ง3Dจะส่งออก:
If there's a cursor
go