Каков рекомендуемый способ использования Vim folding для кода Python
меня интересует возможность сворачивания кода в Vim для кода Python. Я заметил несколько способов сделать это.
есть ли у кого-нибудь предпочтительный способ сделать код Python сворачивание в Vim? То есть,
- у вас есть конкретный плагин Vim, который вы используете и любите?
- вы используете ручное складывание или размещаете маркеры в комментариях?
- любые другие рекомендуемые способы сделать сворачивание кода для Python в Vim?
9 ответов:
лично я не могу убедить себя, чтобы засорить мой код с маркерами. Я стал довольно привычным (и эффективным) при использовании складывания отступа. Вместе с моим отображением пробела (см. ниже), чтобы открыть/закрыть складки и команды zR и zM, я ПРЯМО ДОМА. Идеально подходит для Python!
nnoremap <space> za
vnoremap <space> zf
Я использую этой синтаксический файл для Python. Он устанавливает метод сворачивания в синтаксис и сворачивает все классы и функции, но ничего больше.
Python хорошо подходит для сворачивания на отступ, бит для написания моего собственного кода я использую маркеры, поскольку они могут сжимать документ так, как вы этого хотите, и могут служить своего рода оглавлением. У меня есть это в моем vimrc, чтобы переключаться между ними, когда я просматриваю чей-то код elses.
#Toggle fold methods \fo let g:FoldMethod = 0 map <leader>fo :call ToggleFold()<cr> fun! ToggleFold() if g:FoldMethod == 0 exe 'set foldmethod=indent' let g:FoldMethod = 1 else exe 'set foldmethod=marker' let g:FoldMethod = 0 endif endfun #Add markers (trigger on class Foo line) nnoremap ,f2 ^wywO#<c-r>0 {{{2<esc> nnoremap ,f3 ^wywO#<c-r>0 {{{3<esc> nnoremap ,f4 ^wywO#<c-r>0 {{{4<esc> nnoremap ,f1 ^wywO#<c-r>0 {{{1<esc>
Я думаю, что складывание отступа отлично подходит для python. Я делаю мульти-разветвленные Git репозитория для ВИМ-конфиг питон/Джанго интегрированной среде разработки идеи. Вилка прочь!
Мне очень нравится
python_ifold
плагин.
еще один плагин для складывания кода Python. Довольно простой, обработка docstrings, и на GitHub:
наслаждайтесь!
источник Python поставляется с плагином синтаксиса vim вместе с пользовательским файлом vimrc. Проверьте Python FAQ на vim
для меня идеальная складка-это сложить только
class
иdef
блоки, отступ складывания слишком много на мой вкус. Я думаю, что одним из элегантных решений является использование синтаксической системы, как это один упоминал Томас. Однако этот файл предназначен для замены исходного файла синтаксиса, и он может оказаться старше оригинала (т. е. этот скрипт не упоминает синтаксис Python 3).мое решение-разместить в
~/.vim/syntax
папке файл с именемpython.vim
С важные строки (взятые из приведенного выше скрипта):syn match pythonDefStatement /^\s*\%(def\|class\)/ \ nextgroup=pythonFunction skipwhite syn region pythonFunctionFold start="^\z(\s*\)\%(def\|class\)\>" \ end="\ze\%(\s*\n\)\+\%(\z1\s\)\@!." fold transparent hi link pythonDefStatement Statement
затем просто активируйте складывание с
:set foldmethod=syntax
.