คำสั่ง vi สำหรับการเพิ่มบรรทัดว่าง?


24

ใน vi ฉันสามารถใช้oหรือOเพื่อเพิ่มบรรทัดว่างและเข้าสู่โหมดแทรก แต่ถ้าฉันต้องการอยู่ในโหมดคำสั่งจะมีคำสั่งสำหรับสิ่งนี้หรือไม่?

ใน googling ฉันเห็นคำแนะนำเพื่อเพิ่มเนื้อหาลงใน vimrc ของฉัน แต่ดูเหมือนว่าควรมีวิธีที่ง่ายกว่า (ซึ่งจะใช้งานได้เสมอ)

คำตอบ:


25

ตามVIM FAQคุณสามารถใช้:putคำสั่ง:

12.15 ฉันจะแทรกบรรทัดว่างด้านบน / ใต้บรรทัดปัจจุบันโดยไม่ต้องเข้าสู่โหมดแทรกได้อย่างไร

คุณสามารถใช้คำสั่ง ": put" ex เพื่อแทรกบรรทัดว่าง ตัวอย่างเช่นลอง

: put = ''
: ใส่! = ''

สำหรับข้อมูลเพิ่มเติมอ่าน

: ช่วย: ใส่

แต่จริงๆแล้วมันง่ายกว่าที่จะเพิ่ม:

map <Enter> o<ESC>
map <S-Enter> O<ESC>

.vimrcที่คุณ วิธีนี้คุณสามารถกดEnterหรือShift-Enterในnormal modeการแทรกบรรทัดว่างด้านล่างหรือด้านบนของบรรทัดปัจจุบัน แน่นอนแทน<Enter>และ<S-Enter>ด้วยกุญแจที่คุณต้องการ


15

ส่วนหนึ่งของการใช้เสน่ห์VIคือการมีโหมดคำสั่งสำหรับจัดการข้อความและโหมดแก้ไขสำหรับการเพิ่มข้อความ สิ่งนี้ทำให้คุณไม่ต้องกด CTRL เพื่อทำสิ่งต่างๆ

คำแนะนำอื่น ๆ อาจใช้งานได้ - ฉันไม่ได้ลองเลย - แต่ดูเหมือนว่าพวกเขาต้องการตัวอักษรไม่กี่ตัวหรือจัดการกับVIสภาพแวดล้อมของคุณมากเกินไป

ลองใช้o[ESC]ตามด้วย a .สำหรับแต่ละบรรทัดใหม่ที่คุณต้องการเพิ่มหรือ5.เพื่อเพิ่ม 5 บรรทัด สิ่งนี้เร็วกว่ามากและจะสามารถติดตั้งVIได้ตลอดเวลา


1
คุณสามารถใช้.เพื่อทำซ้ำได้ แต่คุณสามารถทำได้<number>o<esc>เช่น:5o<esc>
bollovan

1
แน่นอนว่าจะได้ผล แต่ฉันชอบที่จะเห็นว่าคำสั่งจะส่งผลกระทบต่อเอกสารจริงอย่างไรก่อนที่ฉันจะทำหลายครั้ง ฉันไม่สามารถบอกคุณได้ว่ากี่ครั้งที่ฉันได้o'dเพิ่มย่อหน้าใหม่ใน VI เพียงเพื่อจะพบว่าย่อหน้าที่น่ารักนั้นจริง ๆ แล้วมีหกบรรทัดที่แตก / ห่อคำอย่างระมัดระวัง
Glorytoad


1

นี่จะเพิ่มบรรทัดว่างหลังบรรทัดปัจจุบัน:

:put _ 

หรือระบุบรรทัดที่จุดเริ่มต้น


0

บน Vim 7.3: <number>o<esc>สร้างบรรทัดว่างเพียงหนึ่งบรรทัด


ด้วยการเพิ่ม<esc>คุณไปอีกครั้งจากโหมดแทรกไปยังโหมดคำสั่ง ฉันคิดว่าเขากำลังมองหาคำตอบที่ไม่ไปแทรกโหมดเลย
แบร์นฮาร์ด

Oh! ฉันลืมที่จะออกจากโหมดแทรกด้วย <esc> ในกรณีนี้มันจะทำงาน มันจะซ้ำบรรทัดที่แก้ไขในทุกบรรทัดต่อไปนี้
Hakim


0

หากต้องการแทรกบรรทัดว่างหลังบรรทัดปัจจุบันขณะอยู่ในโหมดคำสั่งให้ใช้:

: r !echo

นี่คือrคำสั่ง" ead in a file" แต่แทนที่จะให้ชื่อไฟล์เราบอกให้อ่านเอาต์พุตของคำสั่ง shell ( !); คำสั่งเชลล์echoนั้นเพียงพิมพ์บรรทัดว่าง หลังจากแทรกบรรทัดว่างคุณยังคงอยู่ในโหมดคำสั่ง


-2

ฉันประหลาดใจที่ไม่มีใครพูดถึงเรื่องนี้:

ใช้ 'r' ตามด้วย 'Enter key' ในโหมดบรรทัดคำสั่ง

มางานปาร์ตี้ช้ากว่า 7 ปี :)


1
ยกเว้นว่าสิ่งนี้จะนำคุณออกจากโหมดคำสั่งและแทนที่บรรทัดปัจจุบันด้วยบรรทัดว่าง
Jeff Schaller

ฉันไม่แน่ใจว่า @Jeff กำลังพูดอะไร ข้อสังเกตของฉันเกี่ยวกับคำสั่งนี้คือ (1) มันไม่ทำงานหากคุณอยู่ในบรรทัดว่างและ (2) ไม่เช่นนั้นคำสั่งนั้นจะลบอักขระใต้เคอร์เซอร์
สกอตต์

ฉันสะกดผิด rแน่นอนแทนที่อักขระปัจจุบัน ยังคงนำคุณเข้าสู่โหมดคำสั่ง
Jeff Schaller

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