2010-03-02 10 views
31

Czy istnieje jakiś sposób lub narzędzia do zwijania funkcji w vimie, takie jak Visual Studio lub Eclipse?Funkcja składania w vim

Pozdrowienia,

+0

Jeśli masz na myśli "składanie klas i funkcji automatycznie", powinieneś wyraźnie to wyjaśnić w swoim pytaniu. –

+2

nie automatycznie, użytkownicy mogą wybrać, którą część chce złożyć –

+0

vim ma całkiem niezłą dokumentację. Spróbuj: pomóż spasować –

Odpowiedz

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. 

Źródło: vim docs.

+2

zc zamyka zakładkę pod kursorem. (ostrzeżenie: wymyślił to przez eksperymentowanie) – Srikanth

+4

za przełączy fałdę (otwórz, jeśli jest obecnie zamknięty, i na odwrót). Uważam, że bardzo przydatne; prawie nigdy nie używać zc lub zo. http://vim.wikia.com/wiki/Folding#Opening_and_closing_folds – Aman

+1

'zfgg' składa wszystkie linie od góry do kursora. 'zfG' składa wszystkie linie od kursora do dołu. –

2

tak, jest powiązany z klawiszem "z", np. ZO otwiera wszystkie fałdy. zobacz ": help fold" w vim, aby uzyskać więcej informacji. Możesz składać zgodnie z bardzo prostymi regułami, takimi jak wcięcie lub zgodnie ze składnią kodu.

10
:set foldmethod=syntax 

powinien automatycznie składać wszystkie funkcje i inne bloki, jeśli posiadasz plik składni dla swojego języka.

3

Vim ma doskonałe składane wsparcie. W systemie pomocy vim jest dobra dokumentacja. Wystarczy otworzyć vim i zrobić

: help usr_28.txt

Po przeczytaniu, że można również czytać

: pomoc składanych

na trochę więcej informacji.

27

Tak. VIM ma wyjątkowe możliwości składania. Nie lubię naukę zbyt wiele kontroli, wolę automatyzację, więc tutaj jest to, co ja osobiście używać:

W moim .vimrc:

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

To automatycznie fałdy pliki, które otwierane na podstawie tiret, dla wszystkiego z wcięciem dla więcej niż 1 poziomu. Opcja foldclose powoduje automatyczne ponowne zamknięcie zakładki po wyjściu z zakładki.

In-pliku Sterowanie:

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

I jeśli kiedykolwiek denerwują z fałdami, używają

: set foldmethod=syntax 

lub nacisnąć przycisk:

zR 

aby im wszystkim odejść .

+1

to jest najbardziej praktyczna odpowiedź, thks @bhekman –

+2

Uznałem za użyteczne: 'set nofoldenable' ' set foldlevel = 99' też.Wyłącza automatyczne składanie podczas otwierania pliku i składa tylko zewnętrzne funkcje (nie wchodzenie i składanie "forów" i "ifs", a co nie) Stworzyłem moją konfigurację na podstawie twojej odpowiedzi, dzięki. – merinoff