Problème: le déplacement vertical des lignes ferme les plis

9

Lorsque je déplace des lignes avec m(par exemple :m+1) tous mes plis sont fermés. Je peux alors ouvrir à zvnouveau le pliage avec et le curseur sera à la position où je me suis déplacé. J'utilise le pliage avec des {{{ }}}marques et j'ai set foldmethod=markerdans mon .vimrc.

Comment empêcher Vim de fermer les plis lors du déplacement des lignes?

dnieder
la source
1
Je ne peux pas reproduire cela en utilisant vim -u NONE -U NONE -N. Cela pourrait être un problème avec votre vimrc ou un plugin.
EvergreenTree
2
Ça arrive pour moi même avec -u AUCUN -U AUCUN -N. J'utilise v7.4 sur arch linux
dnieder
1
@EvergreenTree J'ai le même problème. Avec vim -u NONE -U NONE -N fold-testet juste mise foldmethod=marker. J'utilise Vim 7.4.712 sur Arch. Si j'essaie de même avec Vim sur Vim 7.4.160 sur CentOS 7, j'obtiens exactement les résultats opposés (tous les plis s'ouvrent lors de l'utilisation :m+1). Et Vim 7.2.441 sur CentOS 6 fonctionne très bien ... Tous les fold*paramètres semblent être les mêmes sur ces machines.
Martin Tournoij
1
C'est très étrange. Cela semble être un bug.
EvergreenTree
3
Cela pourrait être dû au patch 7.4.700 qui tente d'empêcher que les plis ne soient invalides sur: commandes de déplacement
Christian Brabandt

Réponses:

2

Vous pouvez désactiver le pliage avant de le faire :m+1en utilisant zi. Et puis réactivez-le avec zi.

Vous pouvez également ajouter un mappage spécial pour cela dans votre .vimrc:

""move line up/down with Shift+up/down
nnoremap <S-Up> zi:m-2<CR>zi
nnoremap <S-Down> zi:m+<CR>zi
inoremap <S-Up> <Esc>zi:m-2<CR>zia
inoremap <S-Down> <Esc>zi:m+<CR>zia
user2683458
la source
Cela a fonctionné pour moi. (bien que j'aie utilisé différentes fixations)
IanEdington
1

Le pliage est un mécanisme assez compliqué (voir une autre réponse que j'ai donnée au sujet des plis pour une discussion nuancée sur la numérisation du pliage).

Afin de donner une réponse complète, nous devrons voir quel type de plugins vous chargez lors du démarrage d'une instance de vim.

Je parierais qu'il y a quelques plugins qui déblayent avec les paramètres par défaut de Vim ( vim -u NONEauraient dû reproduire cela). Tout plugin qui change le foldmethodest une cause probable (j'essaierais de les supprimer 1 par 1 et voir ce qui cause le problème)

Si vous ne voulez pas du tout bouger avec vos plugins, je vous recommande de modifier manuellement les paramètres de syntaxe + d'analyse, puis d'ouvrir un tampon de test pour confirmer votre fonctionnalité. Cela peut être un voyage frustrant de le faire jouer correctement, mais avec des fouilles incessantes, :helpvous devriez être en mesure de débattre la bête qui se replie.

Dan Bradbury
la source