Si, à une invite de commande, je lancediff Défaire mis lors de la copie des lignes entre les fenêtres Vimdiff
vimdiff file1 file2
je reçois une instance vim qui a deux fichiers côte à côté ouvert. Supposons que le texte dans les fichiers ressemble à ceci (fichier1 est à gauche, fichier2 à droite):
╔═══════╤═══════╗
║foo │-------║
║bar │bar ║
║grue │-------║
║~ │~ ║
║~ │~ ║
╚═══════╧═══════╝
Supposons maintenant que mon curseur est sur le « f » de « foo » et que je souhaite copier la première ligne de fichier1 à la première ligne de fichier2.
Une façon de le faire est de sélectionner et Yank (copie) de la ligne avec v $ y, puis utilisez Ctrl + wl pour déplacer le curseur sur la première ligne de fichier2, puis tapez p pour coller la ligne copiée. Si je fais cela et que je décide alors que je n'ai pas vraiment envie de le faire après tout, je peux appuyer sur ou pour annuler la commande coller que j'ai effectuée dans le fichier 2.
Une autre façon de le faire est d'utiliser la commande diff put dp. Cependant, si après cela je décide de ne pas le faire, je ne peux pas l'annuler simplement en appuyant sur u car mon curseur est toujours dans le fichier 1 et la commande u annulera la modification la plus récente dans le fichier 1 , pas la modification la plus récente dans fichier2. Ainsi, au lieu que je dois utiliser Ctrl + w l ou Ctrl + w w pour déplacer le curseur sur la fenêtre pour fichier2 et puis appuyez suru. Donc, ma question est la suivante: après avoir utilisé dp comme ci-dessus, y a-t-il un moyen facile pour moi de le défaire sans avoir à déplacer mon curseur dans la fenêtre de l'autre fichier?
Cela pourrait se comporter bizarre s'il y a plus de deux fenêtres. (Juste une note, néanmoins une réponse parfaite à la question). –