Pergunta

Eu regularmente correr em C-códigos sem dobrar. É irritante para lê-los, se não houver dobrar, especialmente com arquivos longos. Como posso dobrá-los?

Foi útil?

Solução

Para dobrar de acordo com a sintaxe

:set foldmethod=syntax

Se você quiser fazê-lo manualmente sobre os bits que você deseja dobrável

:set foldmethod=manual

, em seguida, criar novas dobras, selecionando / movendo e pressionando zf por exemplo.

shift-v j j zf

(ignorando os espaços)

Edit:. Veja também os comentários deste resposta para travessão e marcador foldmethods

Outras dicas

Eu acho que você pode ter misturado a terminologia. Você precisa de "embrulho" ou "dobrar". Embrulho é aquele onde as linhas que normalmente não cabem na tela devido ao seu comprimento, são envolvidos, ou seja, mostrado em várias linhas consecutivas na tela (na verdade, é uma linha, em várias linhas - difícil de explicar, melhor para ver em prática).

No embrulho vim é definido por

:set wrap

para ligá-lo, e

:set textwidth=80

para determinar onde vim deve quebrar o texto (80 caracteres é geralmente uma medida agradável).

Folding, por outro lado é uma questão completamente diferente. Ele é aquela em que o vim dobras várias linhas de código (por exemplo, uma função) em uma linha de código. É útil para aumentar a legibilidade do código. Vim tem vários métodos dobráveis, você pode ver todos eles se você

:help folding

O que você está procurando, eu acho que seria, sintaxe dobrar, mas posso estar errado. Eu recomendo a leitura da página de ajuda, não é muito tempo, e muito útil.

Eu enrolado um dobrar plugin para C e C ++ . Ele vai além do que é feito com a sintaxe de dobramento (pode ser que poderia ser melhorado, eu não sei), e deixa menos barulhento e não as coisas realmente úteis se desenrolava, em comparação com o recuo e marcador dobrar base.

A ressalva:., A fim de ter tempo de reação decentes, eu tive que fazer algumas simplificações, e às vezes o resultado é bastante confusa (que tem que digitar zx para corrigi-lo)

Aqui está um pequeno screencast para ver como o plugin dobras um código corretamente equilibrada C ++ fonte, que não está sendo modificado: (

enter descrição da imagem aqui

vi (em oposição a vim) a resposta foi:

:set wm=1

Isto define a margem de envoltório para um caractere antes do final da linha. Este não é o melhor especificação do mundo, com janelas de tamanho variável (que fazia sentido com telas verdes quando era difícil alterar o tamanho).

Isso significa que há também uma forma alternativa de fazê-lo no vim:

:set textwidth=30

Veja: VimDoc Manual do Usuário Seção 25,1

O que você provavelmente vai querer a definição

:set foldmethod=syntax

Mas não colocar isso em manualmente! Isso é falta para fora em um dos VIMS maiores recursos que está a ter configurações personalizadas para centenas de tipos de arquivo já embutidos. Para conseguir isso, adicione isso ao seu ~ / .vimrc

filetype plugin on
filetype indent on

detecção filetype se baseia principalmente em extensão, neste caso * arquivos .c. Veja: Ajuda: filetype para mais informações. Você também pode personalizar essas configurações com base filetype.

Na verdade, não há outra maneira muito simples e eficaz, que está usando foldmethod = marker e conjunto foldmarker ser {,}. Em seguida, o resultado dobra faria se parece com:

  1. todas as funções dobra-ed. Basicamente, parece que o contorno no IDE. (E você também pode set foldlevel=1or mais, se você não quer dobrar tudo no início)

enter descrição da imagem aqui

  1. isto é o que uma função normal parece quando você abri-lo com o nível-1 via zo.

enter descrição da imagem aqui

Além disso, para fazer dobrar pela sintaxe precisa de um pouco de trabalho extra, e aqui está uma boa tutorial sobre isso. Mas eu acho vezes por marker={,} é o bastante, e mais importante, é simples e puro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top