Сложите функцию в VIM - PullRequest
44 голосов
/ 02 марта 2010

Есть ли какой-нибудь способ или инструменты для сворачивания функций в vim, например Visual Studio или Eclipse?

Ответы [ 5 ]

100 голосов
/ 02 марта 2010
    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.

Источник: vim docs.

48 голосов
/ 25 мая 2013

Да. VIM обладает исключительными возможностями складывания. Мне не нравится изучать слишком много элементов управления, я предпочитаю автоматизацию, поэтому вот что я лично использую:

В моем .vimrc:

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

Это автоматически сворачивает файлы, которые вы открываете, основываясь на отступе, для всего отступа для более чем 1 уровня. Опция foldclose автоматически закрывает сгиб после того, как я вышел из сгиба.

Управление в файле:

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

И если вас раздражают складки, используйте

: set foldmethod=syntax

или нажмите:

zR

чтобы заставить их всех уйти.

15 голосов
/ 02 марта 2010
:set foldmethod=syntax

должен автоматически сворачивать все функции и другие блоки, если у вас есть файл синтаксиса для вашего языка.

3 голосов
/ 02 марта 2010

Vim имеет отличную складную поддержку. В справочной системе vim есть хорошая документация. Просто откройте vim и сделайте

:help usr_28.txt 

После прочтения вы также можете прочитать

:help folding

для получения дополнительной информации.

2 голосов
/ 02 марта 2010

да, он связан с клавишей 'z', например zO открывает все складки. смотрите ": help fold" в vim для получения дополнительной информации. Вы можете делать сворачивание в соответствии с очень простыми правилами, такими как отступы или в соответствии с синтаксисом кода.

...