Como posso habilitar e fazer dobramento de código no vim?
Eu tenho que mudar alguma coisa ~/.vimrc
?
Eu digito z+ ae z+ ce z+ oe nada acontece.
Aqui está um artigo sobre a dobra: Dobragem de código no Vim .
Como posso habilitar e fazer dobramento de código no vim?
Eu tenho que mudar alguma coisa ~/.vimrc
?
Eu digito z+ ae z+ ce z+ oe nada acontece.
Aqui está um artigo sobre a dobra: Dobragem de código no Vim .
Respostas:
Não, você não tem que colocar o comando da página que você ligado no seu ~/.vimrc
, você pode simplesmente digitá-los após a emissão :
em vim
obter o prompt de comando.
No entanto, se você colocar as linhas:
set foldmethod=indent
set foldnestmax=10
set nofoldenable
set foldlevel=2
conforme indicado no link que você forneceu, ~/.vimrc
você não precisa digitá-los toda vez que quiser usar a dobragem em um arquivo. O set nofoldenable
garante que ao abrir, os arquivos são "normal", ou seja, não dobrado.
:
. Você digita os set
comandos após o prompt recebido ao digitar :
. O zc
que você digita quando você pode mover-se livremente o cursor, assim como você usaria zt
para obter o texto o cursor estiver sobre a parte superior da tela atual.
O método de dobra padrão do Vim manual
significa que as dobras são criadas manualmente; Caso contrário, existe nenhuma dobra a ser fechado ou aberto usando za, zo, ou zccomo descrito. Mas, você pode criar uma dobra por zf{motion}
no normal modo ou zfno Visual modo; por exemplo, zfjcria uma dobra para a linha atual e a seguinte no modo Normal .
indent
A resposta aceita, por @Anthon, descreve como definir o método de dobra para indent
; isto é, o dobramento é definido pelo nível de indentações.
syntax
De uma maneira mais conveniente, as dobras podem ser criadas automaticamente com base na sintaxe do idioma do buffer atual. Se você estiver usando uma linguagem de programação, vamos chamá-lo de L e você terá uma definição dobrável de L (por exemplo, você instalou um plug-in Vim no qual as informações dobráveis de L são definidas; como c.vim para C / C ++ ou python -mode para Python), você só precisa definir o método de dobramento para syntax
:
set foldmethod=syntax
É isso aí. Os comandos mais úteis para trabalhar com dobras são:
foldlevel
por um.foldlevel
por um.foldlevel
para zero - todas as dobras serão abertas.Você não precisa usá-lo sistematicamente: costumo selecionar manualmente dobras pelo movimento ou seção. Por exemplo, dobrar um parágrafo é zfip
e dobrar as próximas 20 linhas zf20j
. Use za
para alternar e zd
remover.
Isso requer um pouco mais de trabalho, mas permite que sua dobra reflita a tarefa em questão.
Você pode ativar folding
na sessão atual como a resposta do @ Anthon. Mas se você deseja torná-lo permanente, você deve definir pelo menos esta linha .vimrc
para dobrar o trabalho:
set foldmethod=indent
indent
é meio que dobrável, você pode ver mais em :help foldmethod
'foldmethod' 'fdm' string (default: "manual")
local to window
{not in Vi}
{not available when compiled without the +folding
feature}
The kind of folding used for the current window. Possible values:
fold-manual manual Folds are created manually.
fold-indent indent Lines with equal indent form a fold.
fold-expr expr 'foldexpr' gives the fold level of a line.
fold-marker marker Markers are used to specify folds.
fold-syntax syntax Syntax highlighting items specify folds.
fold-diff diff Fold text that is not changed.
Agora, toda vez que você abre um arquivo vim
, pode ver que o código é dobrado pelo método que você definiu. Então você pode usar za
, zc
, zo
.