เยื้องหลายบรรทัดด้วย VIM?


42

ตัวอย่างเช่นฉันแก้ไขรหัสนี้:

<html>
<body>
<script>
    var a = 10;
    a += 100;
</script>
</body>
</html>

ตอนนี้ฉันต้องเยื้องบรรทัดสคริปต์:

<html>
<body>
    <script>
        var a = 10;
        a += 100;
    </script>
</body>
</html>

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


ในโหมดคำสั่ง:gg=G
เจ้าชายจอห์นเวสลีย์

คำตอบ:


71

กดVเพื่อสลับไปยังโหมดบรรทัด VISUAL jและเน้นเส้นที่คุณต้องการเยื้องโดยการกด จากนั้นกด>เพื่อเยื้องพวกเขา Vjjj>ดังนั้นคำสั่งที่สมบูรณ์จะเป็น

หรือวางเคอร์เซอร์บน<script>แท็กและใช้4>>เพื่อเยื้องสี่บรรทัด


1
นอกจากนี้เมื่อเปลี่ยนระดับการเยื้องหลายระดับ มีประโยชน์อย่างมาก (มันจะย้าย 'บล็อก' ที่เหมือนกันด้วยภาพเครื่องหมายหรือ [นับ] เช่น 4 ข้างต้น >>)
Pif

นอกจากนี้หากไฟล์ไวยากรณ์ของคุณสามารถจับคู่แท็กคุณสามารถวางเคอร์เซอร์บนคำว่า "สคริปต์" และกด v สำหรับโหมดภาพ,% เพื่อไปที่แท็กจับคู่และ> เพื่อเยื้องหรือ = เพื่อเยื้องอัตโนมัติตามไวยากรณ์ ดังนั้นคำสั่งทั้งหมดจะเป็น v%> หรือ v% =
ben

โหมดนี้ใช้งานได้กับโหมดภาพอักขระที่ฉลาดเช่นกัน (ตัวพิมพ์เล็ก v) ซึ่งพิมพ์ได้ง่ายกว่าเล็กน้อย ดังนั้น vjjj>
James Scriven

14

เพื่อเสริมคำตอบข้างต้นลองดูที่นี่ https://stackoverflow.com/questions/235839/how-do-i-indent-multiple-lines-quickly-in-vi

มีมากกว่าหนึ่งวิธีในการทำเช่นนี้และฉันไม่สามารถหวังว่าจะแข่งขันกับเอกสารที่ให้มาแล้ว

รายการโปรดส่วนตัวของฉันคือ==การเยื้องอัตโนมัติ 5==เพื่อเยื้องอัตโนมัติ 5 บรรทัด


10

เพื่อเยื้องบรรทัดทั้งหมดที่อยู่ด้านล่างบรรทัดปัจจุบัน

=G

ดังนั้นหากต้องการเยื้องไฟล์ทั้งหมดให้ไปที่จุดเริ่มต้นของไฟล์ ( gg) แล้วเยื้องบรรทัดทั้งหมดที่อยู่ด้านล่างบรรทัดปัจจุบัน ( =G)

gg=G

เพื่อเยื้องบรรทัดปัจจุบัน

==

ดังนั้นเพื่อเยื้องnบรรทัดด้านล่างบรรทัดปัจจุบัน

n==

ตัวอย่างเช่นเมื่อต้องการเยื้อง 4 บรรทัดด้านล่างบรรทัดปัจจุบัน

4==

เหล่านี้เป็นคำสั่งที่ง่ายที่สุดในการเยื้องหลายบรรทัด


8

ถ้ามันเป็นฉันฉันจะสังเกตเห็นว่ามี 4 >4>สายการเยื้องตำแหน่งบนบรรทัดบนสุดแล้วประเภท หากมีจำนวนบรรทัดที่ต้องนับมากเกินไปฉันจะวางตำแหน่งบนบรรทัดบนสุดและพิมพ์mkเพื่อทำเครื่องหมายชื่อ k จากนั้นวางลงบนบรรทัดล่างสุด (ซึ่งอาจอยู่ห่างออกไปหลายหน้าจอ) และพิมพ์>'k


เคล็ดลับที่ดีในการบันทึกการคำนวณทางคณิตศาสตร์ขอบคุณ
flickerfly

3

นี่เป็นวิธีการที่ดีถ้าคุณพยายามเยื้องบรรทัดจำนวนมาก:

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