Estou interessado em habilitar o dobramento de código no Vim para código Python. Tenho notado várias maneiras de fazer isso.
Alguém tem uma maneira preferencial de dobrar código Python no Vim? Ou seja,
- Você tem um plugin Vim específico que você usa e gosta?
- Você usa dobra manual ou coloca marcadores nos comentários?
- Alguma outra maneira recomendada de dobrar código para Python no Vim?
set foldnestmax=2
, desta forma os métodos das classes são dobrados, mas os comandos internos não.Eu uso este arquivo de sintaxe para Python. Ele define o método de dobramento para a sintaxe e dobra todas as classes e funções, mas nada mais.
fonte
Mais um plugin para dobrar código Python. Bastante simples, manipulando docstrings e no GitHub:
SimpylFold
Aproveitar!
fonte
if
,for
ewhile
blocos, não é?Python é bem adequado para dobrar em indentação, pouco para escrever meu próprio código. Eu uso marcadores, pois eles podem processar um documento da maneira que você quiser e podem servir como uma espécie de índice analítico. Eu tenho isso no meu vimrc para alternar entre os dois quando estou visualizando o código de outra pessoa.
fonte
Acho que a dobradura de indentação é adequada para python. Estou fazendo um repositório git multi-ramificado para ideias de IDE vim-config python / django. Desembarque!
http://github.com/skyl/vim-config-python-ide
fonte
Eu realmente gosto do
python_ifold
plugin .fonte
Experimente este plugin:
http://vim.sourceforge.net/scripts/script.php?script_id=515
fonte
Para mim, a dobradura ideal é dobrar apenas os blocos
class
edef
, dobrar recuado é demais para o meu gosto. Eu acho que uma solução elegante é usar o sistema de sintaxe como esta uma mencionado por Tomas. No entanto, este deve substituir o arquivo de sintaxe original e pode acabar sendo mais antigo que o original (ou seja, esse script não menciona a sintaxe do Python 3).Minha solução é colocar na
~/.vim/syntax
pasta um arquivo nomeadopython.vim
apenas com as linhas importantes (retiradas do script acima):Em seguida, basta ativar o dobramento com
:set foldmethod=syntax
.fonte
class
edef
s se eles estiverem no início de uma linha. Como mal consigo ler a expressão, estou com problemas para tentar ajustá-la para corresponder a^def
e^class
. Isso é curioso, já que\s*
deve lidar bem com isso ..A fonte Python vem com um plugin de sintaxe vim junto com um arquivo vimrc customizado. Verifique o FAQ do python no vim
fonte
Em seu
.vimrc
:Então,
zM
mascarar tudozR
para expandir tudo. Eu também adicionei:Então você pode
z1
ez2
desamarrar aos poucos.fonte
Eu realmente gosto deste pequeno script vim que escrevi para .vimrc. Ele mapeia
alt+1
para dobrar o primeiro nível de recuo python (definições e funções de classe),alt+2
para dobrar o segundo nível (métodos de classe) ealt+0
para desdobrar tudo. Isso garante que ele dobre apenas um nível e não dobre nenhum dos subníveis aninhados. Você ainda pode usarza
para alternar a dobra para o bloco atual. Observe que em^[0
, o^[
éalt
para o meu terminal. Não tenho muita experiência em script vim, então fique à vontade para fazer sugestões sobre a função :)fonte