Làm thế nào để bạn gấp chức năng tự động?


12

Có cách nào để tạo các hàm gấp Vim dựa trên cú pháp của khai báo hàm không?

Ví dụ: có vim biến một hàm như thế này:

def foobar(foo,bar):
  if foo > bar:
    print "foo"
  elif foo < bar:
    print "bar"
  elif foo == bar:
    print "foobar"

Vào đây:

+----- 7 lines: def foobar(foo,bar): -------------------------------------------------------------

Có một số bộ lệnh hoặc hàm tôi có thể đưa vào tệp .vimrc của mình để sử dụng để thực hiện việc này không?

Câu trả lời:


12

Cho rằng ví dụ của bạn là trong Python, dựa trên sự thụt dòng chính xác của các khối mã, nó đủ để dựa vào đó:

:set foldmethod=indent

Để biết thêm thông tin về các loại gấp có sẵn, xem : trợ giúp


7

Chắc chắn rồi:

set foldmethod=syntax

Sau đó, bạn có thể sử dụng zcđể đóng một nếp gấp, zođể mở một hoặc zađể chuyển đổi.

Thật không may, Vim không bao gồm thông tin gấp cho Python theo mặc định mà bạn dường như đang sử dụng. Bạn có thể sử dụng một trong nhiều tài nguyên bên ngoài , tuy nhiên.


3
Để làm việc này, tệp cú pháp bạn đang sử dụng nên sử dụng syn-fold. trong bản cài đặt vim74 của tôi, chỉ có khoảng 10% tệp cú pháp sử dụng nó.
jalanb
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.