มีวิธีแทรกอักขระเดียวแล้วออกจากโหมดแทรกหรือไม่


10

เมื่อฉันอ่านข้อความและเพิ่ม backticks รอบคำหรือเครื่องหมายคำพูดหรืออะไรก็ตามมันน่ารำคาญที่ฉันต้องกด Esc หรือ Ctrl- [หลังจากแทรกแต่ละครั้ง ส่วนแทรก (และต่อท้าย) นั้นแตกต่างกันดังนั้นจึง.ไม่ช่วยอะไรมาก

มีสิ่งใดที่คล้ายกับrที่กลับไปสู่โหมดปกติหลังจากใช้อักขระตัวเดียว แต่ใช้โหมดแทรกแทนโหมดแทนที่หรือไม่?


3
คุณควรพิจารณาใช้ (หรือขยาย) ปลั๊กอินvim-Surroundเพื่อทำงานกับข้อความในวิธีที่มีความหมายมากขึ้น
VanLaser

คำตอบ:


11

หากไม่มี (ฉันยังไม่ได้ดู) คุณสามารถใช้การจับคู่นี้ใน.vimrc:

nnoremap <C-I> i <ESC>r

มันinserts สถานพื้นที่, ESCลิงและเริ่มต้นตัวอักษรเดียวreplace CtrlIนี้ได้รับการแมปไป

มันเป็นแฮ็คและจะออกจากพื้นที่แขวนหากคุณกดหลบหนีก่อนที่จะพิมพ์จดหมาย - แต่มันก็ดีกว่าไม่มีอะไร!


1
ไม่เลว ... ฉันจะใช้มันถ้าไม่มีใครคิดอะไรดีขึ้น :)
Wildcard

2
@ บัตรฉันไม่ทราบเลยว่าฉันใช้กับกรณีการใช้งานจริงมากแค่ไหนโดยที่ไม่รู้ตัว เป็นคำถามที่ดี :) ฉันได้เพิ่มเข้าไปใน vimrc ของฉันเองเช่นกัน
Qix - MONICA ถูกยกเลิก

2
ฉันใช้เวลาเกือบทั้งวันในการแก้ไข markdown ตัวเอียง, โค้ดอินไลน์, เยื้องส่วนหัว, ไฮเปอร์ลิงก์ ... ทั้งหมดของพวกเขาแทรกหนึ่งตัวอักษร :) จริงๆแล้วทางออกของคุณสมบูรณ์แบบ ฉันจะเริ่มใช้มันทันที
Wildcard

2
ข้อเสีย: มันไม่สามารถทำซ้ำได้ด้วย.คำสั่ง :(
สัญลักษณ์ตัวแทน

1
@Wildcard น่าเสียดายหลังจากทำการค้นคว้าเล็กน้อยไม่มีวิธีในการสร้างสาขาซ้ำแบบทำด้วยมือสำหรับ.คุณเว้นแต่ว่าคุณกำลังใช้repeat.vimอยู่
Qix - MONICA ถูกยกเลิก

0

ในการแทรกอักขระที่ท้ายคำ (แทนที่จะอยู่ที่ตำแหน่งเคอร์เซอร์) ให้ใช้

nnoremap <C-a> a <ESC>r

แผนที่นี้ไปCtrl + aคุณสามารถแมปกับสิ่งอื่นใดได้แน่นอน

ฉันมีสองอย่างในของฉัน.vimrcดังนั้นฉันจึงไม่เร่งรีบมาก :)

" Insert char at cursor position
nnoremap <C-i> i <ESC>r
" Append char after cursor position
nnoremap <C-a> a <ESC>r
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.