9
votes

Passer à la fenêtre Split sur la même ligne

J'ai deux tampons ouverts dans Vim à l'aide d'une scission verticale liée à l'aide de: Set ScrollBind.

Y a-t-il un moyen de basculer entre les fenêtres de sorte que le curseur reste sur la même ligne (relative) lorsque je bascule entre eux à l'aide des commandes Ctrl + W?

vim

0 commentaires

3 Réponses :


1
votes

^ w + r (tampons de commutation) suivi de ^ w ^ w (retour du curseur)


1 commentaires

Cela déplace vraiment les tampons autour, ce que je veux vraiment faire est quelque chose où ^ w + h me déplace vers la fenêtre droite sans changer la rangée du curseur. Le comportement par défaut de VIM est de retourner à la même rangée que le curseur était allumé quand j'étais enfoncé dans ce tampon, que je voudrais remplacer. J'espère que cela a du sens, il semble difficile d'expliquer.



6
votes

Un mappage fera ce dont vous avez besoin

faire dans la fenêtre gauche: p> xxx pré>

et faites ceci dans la fenêtre droite: P>

:nnoremap <left> :let offset=winline()\|wincmd h\|exe 'normal ' . offset . 'H'<cr>


2 commentaires

Je m'incline à votre Supérieur Vim-foo. Savez-vous d'une façon de faire la même chose qui utilise un positionnement relatif du curseur du haut de l'écran?


Citant @zyx: "N'utilisez pas * Carte, sauf si vous savez pourquoi vous le préférez à Nore version"



3
votes

Vim version 7.3 Ajout d'un cursorbind Option:

Lorsque cette option est définie, en tant que curseur dans le courant la fenêtre déplace d'autres fenêtres cursorbants (fenêtres qui ont aussi cette option définie) déplacer leurs curseurs sur la ligne correspondante et colonne. Cette option est utile pour la visualisation de la différences entre deux versions d'un fichier (voir 'diff'); en mode DIFF, lignes insérées et supprimées (bien que non des caractères dans une ligne) soient pris en compte.


0 commentaires