2010-03-02 30 views
31

Có cách nào hay các công cụ để gấp chức năng trong vim, như Visual Studio hay Eclipse?Chức năng gấp trong vim

Trân trọng,

+0

Nếu bạn có nghĩa là "xếp lớp và chức năng tự động" thì bạn nên làm rõ nó một cách rõ ràng trong câu hỏi của bạn. –

+2

không tự động, người dùng có thể chọn phần nào mình muốn gấp –

+0

vim có tài liệu khá tốt. Thử: help fold –

Trả lời

84
Vim folding commands 
--------------------------------- 
zf#j creates a fold from the cursor down # lines. 
zf/ string creates a fold from the cursor to string . 
zj moves the cursor to the next fold. 
zk moves the cursor to the previous fold. 
za toggle a fold at the cursor. 
zo opens a fold at the cursor. 
zO opens all folds at the cursor. 
zc closes a fold under cursor. 
zm increases the foldlevel by one. 
zM closes all open folds. 
zr decreases the foldlevel by one. 
zR decreases the foldlevel to zero -- all folds will be open. 
zd deletes the fold at the cursor. 
zE deletes all folds. 
[z move to start of open fold. 
]z move to end of open fold. 

Nguồn: vim docs.

+2

zc đóng gấp dưới con trỏ. (cảnh báo: figured nó bằng cách thử nghiệm) – Srikanth

+4

za sẽ chuyển đổi một lần (mở nếu hiện đang đóng cửa, và ngược lại). Tôi thấy khá tiện dụng; hầu như không bao giờ sử dụng zc hoặc zo. http://vim.wikia.com/wiki/Folding#Opening_and_closing_folds – Aman

+1

'zfgg' gấp tất cả các dòng từ trên xuống con trỏ. 'zfG' gấp tất cả các dòng từ con trỏ xuống cuối. –

2

có, nó bị ràng buộc với phím 'z', ví dụ: zO mở tất cả các nếp gấp. xem ": help fold" trong vim để biết thêm thông tin. Bạn có thể làm gấp theo các quy tắc rất đơn giản, như thụt lề, hoặc theo cú pháp mã.

10
:set foldmethod=syntax 

nên tự động gấp tất cả các chức năng và các khối khác nếu bạn có tệp cú pháp cho ngôn ngữ của mình.

3

Vim có hỗ trợ gấp tuyệt vời. Có tài liệu tốt trong hệ thống trợ giúp vim. Chỉ cần mở vim và làm

: giúp usr_28.txt

Sau khi đọc rằng bạn cũng có thể đọc

: giúp gấp

đối với một số thông tin hơn.

27

Có. VIM có khả năng gấp đặc biệt. Tôi không thích học quá nhiều điều khiển, tôi thích tự động hóa, vì vậy đây là những gì cá nhân tôi sử dụng:

Trong vimrc của tôi:

set foldmethod=indent 
set foldlevel=1 
set foldclose=all 

này sẽ tự động gập tập tin mà bạn mở, dựa trên thụt lề, cho mọi thứ thụt lề cho hơn 1 cấp độ. Tùy chọn foldclose làm cho nếp gấp tự động đóng lại sau khi tôi điều hướng ra khỏi màn hình đầu tiên.

Controls

In-file:

zo - opens folds 
zc - closes fold 
zm - increases auto fold depth 
zr - reduces auto fold depth 

Và nếu bạn đã bao giờ cảm thấy khó chịu với những nếp gấp, sử dụng

: set foldmethod=syntax 

hoặc báo chí:

zR 

để làm cho họ tất cả đi .

+1

đây là câu trả lời thực tế nhất, thks @bhekman –

+2

Tôi thấy hữu ích khi có: 'đặt nofoldenable' ' đặt foldlevel = 99' quá.Nó vô hiệu hóa tự động gấp trên mở tập tin và gấp chỉ các chức năng bên ngoài (không bước vào và gấp "fors" và "ifs" và những gì không) Thực hiện cấu hình của tôi dựa trên câu trả lời của bạn mặc dù, cảm ơn. – merinoff

Các vấn đề liên quan