Quando movo as linhas com m
(por exemplo :m+1
) todas as minhas dobras estão fechadas. Posso abrir a dobra zv
novamente e o cursor estará na posição em que mudei. Eu uso dobrar com {{{ }}}
marcas e tenho set foldmethod=marker
no meu .vimrc.
Como posso impedir que o vim feche dobras ao mover linhas?
vim -u NONE -U NONE -N
. Pode ser um problema com seu vimrc ou um plug-in.vim -u NONE -U NONE -N fold-test
e apenas definindofoldmethod=marker
. Estou executando o Vim 7.4.712 no Arch. Se eu tentar o mesmo com o Vim no Vim 7.4.160 no CentOS 7, obtenho exatamente os resultados opostos (todas as dobras são abertas ao usar:m+1
). E o Vim 7.2.441 no CentOS 6 funciona bem ... Todas asfold*
configurações parecem as mesmas nessas máquinas.Respostas:
Você pode desativar a dobra antes de fazer isso
:m+1
usandozi
. E, em seguida, ative-o novamente comzi
.Você também pode adicionar um mapeamento especial para isso no seu .vimrc:
fonte
Dobrar é um mecanismo bastante complicado (veja outra resposta que eu dei sobre dobras para uma discussão detalhada sobre a digitalização de dobras).
Para dar uma resposta completa, precisaremos ver que tipo de plug-ins você está carregando ao inicializar uma instância do vim.
Eu apostaria que existem alguns plugins que estão mexendo com as configurações padrão do vim (
vim -u NONE
deveriam ter reproduzido isso). Qualquer plug-in que alterefoldmethod
é uma causa provável (eu tentaria removê-los 1 por 1 e ver o que causa o problema)Se você não quiser mexer com seus plugins, recomendo ajustar manualmente as configurações de sintaxe + análise e, em seguida, abra um buffer de teste para confirmar sua funcionalidade. Pode ser uma jornada frustrante fazê-lo jogar bem, mas com algumas escavações implacáveis,
:help
você deve ser capaz de lidar com a fera que está dobrando.fonte