Lorsque j'ouvre une division verticale dans vim, il prend ma ligne actuelle et la place en haut de la mémoire tampon (défilement du fichier entier vers le haut). Comment puis-je faire en sorte que vim conserve sa position actuelle?
vim
text-editors
split-window
cmhobbs
la source
la source
Ctrl-W-V
touches et:vsplit
ne déplacent pas le curseur pour moi.vim -N -u NONE
que voir si le problème disparaît. Étant donné:vsplit
que le problème est aussi à l'origine, il s'agit probablement d'une autocommande plutôt que d'un mappage. Vous pouvez essayer:au! filetypedetect
(pour vous débarrasser de ce groupe et rendre le reste plus facile à voir) suivi:au
de la liste de toutes les autocommandes et voir si certaines semblent suspectes.Réponses:
EDIT: REAL REPONSE : voir https://stackoverflow.com/questions/9625028/vim-buffer-position-change-on-window-split-annoyance
TLDR : Ce comportement ne se produit que la première fois qu'une nouvelle fenêtre est créée. Si vous fermez la fenêtre et recommencez, le curseur dans le nouveau tampon est le même que dans l'ancien tampon. La solution consistait à faire quelque chose d’inutile en ouvrant puis en fermant une fenêtre, puis en effectuant votre division verticale.
Voici un autre
.vimrc
mappage qui enveloppe la réponse de stackoverflow pour le faire pour vous:Ainsi, lorsque vous appuyez sur
ctrl-shift-o
, un nouvel onglet vide s'ouvre (:tabnew<CR>
), supprimez le tampon (:bwipeout<CR>
), puis effectuez votre division verticale (:vs<CR>
).J'espère que cela va mieux - fonctionne parfaitement pour moi. Merci de me donner envie de trouver quelque chose d’utile pour contourner ce comportement ennuyeux!
Cela arrive tout le temps pour moi! Je suis récemment venu avec une réponse qui fonctionne la plupart du temps (mieux que rien cependant). Mettez ceci dans votre
.vimrc
:Chaque fois que vous appuyez sur
ctrl+shift+o
cette touche , faites une division verticale et placez le curseur sur la même ligne et la même colonne que vous l'aviez dans la mémoire tampon d'origine avant la division.Le problème
vim
est que le tampon que vous éditez est plus grand que ce qui peut être affiché actuellement. Selon l'endroit où se trouve le curseur dans la mémoire tampon (exactement au milieu, dans la moitié supérieure et dans la moitié inférieure), une fois que vous effectuez une:vs
division verticale, le nouveau tampon défilera vers le bas ou vers le haut jusqu'à ce qu'il pense le mieux.La
.vimrc
cartographie ci-dessus est en train de faire:Encore une fois, cela fonctionne la plupart du temps pour moi, sans savoir pourquoi cela ne fonctionne pas tout le temps. En tout cas, espérons que cela a aidé certains
la source
Cela peut se produire parce que vous avez de longues lignes qui se regroupent en raison de la division verticale. Si vous
:set nowrap
et:vsp
vous remarquerez que cela ne se produit pas.la source