it-swarm-vi.com

Thụt lề vài dòng với VIM?

Ví dụ: tôi đang chỉnh sửa mã này:

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

bây giờ tôi cần thụt dòng script:

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

Làm thế nào tôi có thể làm điều này mà không di chuyển con trỏ đến đầu mỗi dòng và nhấn Tab?

51
wong2

Nhấn V để chuyển sang chế độ VISUAL LINE và tô sáng các dòng bạn muốn thụt lề bằng cách nhấn j. Sau đó nhấn > để thụt lề chúng. Vì vậy, lệnh hoàn chỉnh sẽ là Vjjj>.

Hoặc, đặt con trỏ của bạn vào <script> tag và sử dụng 4>> để thụt bốn dòng.

82
dogbane

Để bổ sung cho câu trả lời trên, hãy xem ở đây. https://stackoverflow.com/questions/235339/how-do-i-indent-multipl-lines-quickly-in-vi

Có nhiều hơn một cách để làm điều này và tôi không thể hy vọng cạnh tranh với tài liệu đã được cung cấp ở đó.

Sở thích cá nhân của tôi là == để tự động thụt lề. 5== để tự động thụt lề 5 dòng.

17
user606723

Để thụt lề tất cả các dòng bên dưới dòng hiện tại

=G

Vì vậy, để thụt lề toàn bộ tệp, đi đến phần đầu của tệp (gg) và sau đó thụt lề tất cả các dòng bên dưới dòng hiện tại (=G)

gg=G

Để thụt dòng hiện tại

==

Vì vậy, để thụt dòng n bên dưới dòng hiện tại

n==

Ví dụ: để thụt 4 dòng bên dưới dòng hiện tại

4==

Đây là những lệnh đơn giản nhất để thụt lề nhiều dòng.

11
Sagar Jain

Nếu là tôi, tôi sẽ nhận thấy rằng có 4 dòng để thụt lề, vị trí trên dòng trên cùng và sau đó nhập >4>. Nếu có quá nhiều dòng để đếm, tôi sẽ định vị trên dòng trên cùng và gõ mk để tạo một dấu có tên k, sau đó đặt vào dòng dưới cùng (có thể cách xa vài màn hình) và nhập >'k

9
Michael Dillon

Đây là một cách tiếp cận hay, nếu bạn đang cố gắng thụt vào một số lượng lớn các dòng:

:/<script>/,/<\/script>/ >>
4
bhinesley