Comment désactiver le défilement horizontal
J'ai écrit une solution qui désactive le défilement horizontal (en décochant la suggestion de @ ЯрославРахматуллин ), mais je ne pense pas que vous allez l'aimer:
augroup NoScrollPlease
autocmd!
autocmd CursorMoved * norm!99zH
augroup END
Cela évite de faire défiler vers la droite avec la méthode incroyablement précise consistant à simplement faire défiler à nouveau. *
* Parce que je ne sais pas dans quelle mesure vous avez fait défiler vers la droite ou combien de temps vos lignes sont, je fais défiler le montant arbitrairement "loin" de 99 demi-largeurs d'écran. Notez également que je ne me soucie pas de vérifier si vous avez réellement fait défiler vers la droite avant de faire défiler "en arrière" vers la gauche. Si vous avez réellement l'intention d'utiliser cette solution, vous pouvez ajouter quelque chose en comparant les valeurs de getcurpos()
, 'sidescroll'
et 'columns'
.
Pourquoi tu ne vas pas vouloir le faire
La raison pour laquelle vous n'allez pas utiliser ceci est que le problème de défilement est sous-jacent à un autre problème: Vim ne vous laissera pas déplacer le curseur "hors écran". Par conséquent, si vous faites défiler le curseur vers la gauche de manière à ce que le curseur ne soit plus affiché à l'écran après le défilement, Vim l'y amènera gentiment et le déplacera vers la gauche.
Mais comme le calcul qu’il utilise pour déterminer si le curseur est à l’écran est identique à celui utilisé pour décider de faire défiler ou non le problème initial, l’effet net est que, avec cette "solution" en place, si vous essayez de déplacer le curseur. curseur à droite dans une situation qui provoquerait normalement un défilement latéral; maintenant, le curseur refuse de se déplacer. **
** Pour être légèrement plus précis, en fonction de la position actuelle et du mouvement, le curseur peut se déplacer vers la droite; il ne veut tout simplement pas dépasser la position où un parchemin se produirait normalement.
Autres options?
Donc, je crains que votre solution de contournement prévue ne va pas se dérouler. Si vous voulez une solution viable au problème général, il faudra l’appliquer dans le code source Vim.
Comme vous l'avez déjà noté , il est peu probable que cela arrive dans un avenir rapproché. Je crains donc que votre meilleur pari pour une solution de contournement à l'exemple du problème présenté dans votre gif consiste à demander à l'auteur du plug-in de cesser conceal
complètement d' utiliser et à la place. supprime entièrement le texte caché du tampon.
Sur la base de la sortie et la mention non dissimulée de vim-plugin-AnsiEsc
dans la documentation ce pourrait être quelque chose qu'il est possible pour eux de mettre en œuvre, mais il est difficile de dire avec certitude sans connaître le fonctionnement du plug - in.
:set wrap