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


42

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?


Trong chế độ chỉ huy:gg=G
Hoàng tử John Wesley

Câu trả lời:


71

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 trên <script>thẻ và sử dụng 4>>để thụt bốn dòng.


1
Ngoài ra, khi thay đổi nhiều cấp độ thụt lề ,. là cực kỳ hữu ích (nó sẽ di chuyển cùng một 'khối' với hình ảnh, nhãn hiệu hoặc [đếm] như 4 >> ở trên).
Pif

Ngoài ra, nếu tệp cú pháp của bạn có thể thực hiện khớp thẻ, bạn có thể đặt con trỏ vào từ "script" và nhấn v cho chế độ trực quan,% để chuyển đến thẻ phù hợp và> để thụt lề hoặc = để tự động thụt lề dựa trên cú pháp, vì vậy tổng số lệnh sẽ là v%> hoặc v% =
ben

Điều này cũng hoạt động với chế độ hình ảnh nhân vật thông minh (chữ thường v), dễ gõ hơn một chút. Vì vậy, vjjj>
James Scriven


10

Để 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 ndòng 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.


8

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 đó gõ >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à gõ>'k


mẹo hay để tiết kiệm làm toán trên các dòng, cảm ơn!
flickerfly

3

Đâ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>/ >>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.