comme j'ai déjà recueilli 2 votes serrés, je pense que cela appartient ici car vim est l'éditeur d'un programmeur.
flybywire
28
Je suis d'accord, c'est lié à la programmation et c'est une vraie question.
DigitalRoss
41
Quelqu'un ici fait le tour et marque chaque question de Vim comme "appartient à SU" malgré que la communauté ait depuis longtemps décidé que Vim appartient à SO, c'est un outil de programmation.
Brian Carper,
@Brian: Avez-vous un lien vers le document où ce consensus a été atteint?
trop de php
12
meta.stackexchange.com/questions/20251/… mais je me souviens que cela est arrivé l'année dernière quelque temps. Vim / Emacs sont des IDE. De plus, les langages utilisés dans les fichiers de configuration pour les deux sont des langages de script complets de Turing, donc l'acte de configurer Vim est lui-même une programmation pour commencer.
Je voudrais juste lancer le plugin undoTree, super génial pour les moments où vous vous êtes apparemment vissé avec une rafale d'annulations et de rétablissements.
Jake Sellers
3
Si je lis sur vi, mes doigts agissent d'eux-mêmes. Les commandes vi ne fonctionnent pas sur stackoverflow. :-)
ciscogambo
2
Remarque pour les utilisateurs de Mac: Ctrl + r dans un terminal Mac gâchera votre journée dans vim. Je ne connais pas la combinaison de touches appropriée dans le terminal Mac à annuler, mais ce n'est certainement PAS Ctrl + r!
tpartee
@tpartee Je viens d'utiliser Ctrl + r dans vim sous l'application Terminal de macOS - aucun problème ici.
Jase
3
Peut-être que @tpartee signifiait tout gâcher Cmd + r? Cela fait certainement quelque chose de bizarre; mais Ctrl + rça a bien fonctionné pour moi (Mac + tmux + vim)
dwanderson
133
Consultez également :undolist, qui offre plusieurs chemins à travers l'historique d'annulation. Ceci est utile si vous tapez accidentellement quelque chose après avoir trop annulé.
Utilisez :earlier/ :later. Pour refaire tout ce que vous avez juste à faire
later 9999999d
( en supposant que vous devez d' abord modifié le fichier au plus il y a 9999999 jours), ou, si vous vous rappelez la différence entre l' état actuel et undo un besoin, l' utilisation Nh, Nmou Nspendant des heures, minutes et secondes respectivement. + :later N<CR><=> Ng+et :later Nfpour les écritures de fichiers.
:latertravaillé pour moi dans vi(pas vim - recherché "vi" sur google mais tous les résultats sont pour "vim"), merci!
Luc
@Luc Presque partout où vous avez une vicommande, il s'agit d'un lien symbolique vers un exécutable vim ou une copie de celui-ci. Pas complètement partout cependant.
ZyX
@ZyX Je souhaite que ce soit vrai. Je n'utilise vi qu'après bash lance a vim: command not found. La prochaine chose que je fais est alias vim=viparce que je le tape si automatiquement, mais c'est quand même le vi vieux. De plus, refaire (ctrl + r) aurait fonctionné correctement si vi avait été un alias pour vim.
Luc
2
9999999d remonte à 27395 ans. Je suppose que la fonction d'annulation n'a pas été implémentée dans vi à l'époque. Vous voudrez peut-être vous épargner des efforts de frappe exhaustifs et utiliser un nombre raisonnable. 9999d correspond à environ 27 ans, 999d à 2,7 ans. Je suppose que dans la plupart des cas, cela suffit ...
<Undo> or *undo* *<Undo>* *u*
u Undo [count] changes. {Vi: only one level}
*:u* *:un* *:undo*
:u[ndo] Undo one change. {Vi: only one level}
*CTRL-R*
CTRL-R Redo [count] changes which were undone. {Vi: redraw screen}
*:red* *:redo* *redo*
:red[o] Redo one change which was undone. {Vi: no redo}
*U*
U Undo all latest changes on one line. {Vi: while not
moved off of it}
Je sais Ctrlrdans Vim lui-même, mais cette liaison particulière ne fonctionne pas dans VsVim (du moins pas dans ma configuration?).
Ce qui fonctionne cependant, c'est la commande :red. C'est un peu plus compliqué que ce qui précède, mais c'est toujours bien quand vous en avez vraiment besoin.
Voté parce que la question concerne spécifiquement vim, pas Visual Studio.
John Von Neumann
3
@JohnVonNeumann Ceci est lié à Vim, ou du moins aux liaisons Vim, juste dans le contexte de VS. C’est ce qui m’a amené à cette question, après tout. Punir quelqu'un pour avoir ajouté un peu plus d'informations semble un peu dur et inutile, ne pensez-vous pas, même si cela s'étend peut-être légèrement au-delà de la portée du PO?
Kjartan
2
En pratique, le :undolistest difficile à utiliser et Vim :earlieret le :latersuivi temporel des modifications ne sont utilisables que pour les corrections de grain de cours.
Compte tenu de cela, j'ai recours à un plug-in qui combine ces fonctionnalités pour fournir une arborescence visuelle d'annulations navigables, appelée «Gundo».
Réponses:
Ctrl+r
la source
Cmd + r
? Cela fait certainement quelque chose de bizarre; maisCtrl + r
ça a bien fonctionné pour moi (Mac + tmux + vim)Consultez également
:undolist
, qui offre plusieurs chemins à travers l'historique d'annulation. Ceci est utile si vous tapez accidentellement quelque chose après avoir trop annulé.la source
:undolist
et tapez:undo 178
(disons) pour revenir en arrière à l'étape 178.:undolist
?Utilisez
:earlier
/:later
. Pour refaire tout ce que vous avez juste à faire( en supposant que vous devez d' abord modifié le fichier au plus il y a 9999999 jours), ou, si vous vous rappelez la différence entre l' état actuel et undo un besoin, l' utilisation
Nh
,Nm
ouNs
pendant des heures, minutes et secondes respectivement. +:later N<CR>
<=>Ng+
et:later Nf
pour les écritures de fichiers.la source
:later
travaillé pour moi dansvi
(pas vim - recherché "vi" sur google mais tous les résultats sont pour "vim"), merci!vi
commande, il s'agit d'un lien symbolique vers un exécutable vim ou une copie de celui-ci. Pas complètement partout cependant.vim: command not found
. La prochaine chose que je fais estalias vim=vi
parce que je le tape si automatiquement, mais c'est quand même le vi vieux. De plus, refaire (ctrl + r) aurait fonctionné correctement si vi avait été un alias pour vim.Documentation Vim
la source
En mode commande, utilisez la Utouche pour annuler et Ctrl+ rpour rétablir. Jetez un œil à http://www.vim.org/htmldoc/undo.html .
la source
Appuyez d'abord sur la Esctouche pour quitter le mode édition.
Alors,
Pour annuler , utilisez la utouche autant de fois que vous souhaitez annuler.
Pour refaire , utilisez la touche Ctrl+r
la source
Reportez-vous à la partie "annuler" et "rétablir" du document Vim .
: red [o] (Rétablir un changement qui a été annulé) et {count} Ctrl+ r(Rétablir {count} changements qui ont été annulés) sont tous deux corrects.
De plus, le : {count} plus tôt (passer à un état de texte plus ancien {count} fois) pourrait toujours être un substitut pour annuler et refaire.
la source
CTRL+r
Le "r" est en minuscule.
la source
^r
et^R
, et Vim suit cela.^X
(oùX
peut être n'importe quelle lettre).Vous utilisez VsVim pour Visual Studio?
Je suis tombé sur ce problème lors de l'expérimentation de VsVim, qui fournit des liaisons pour les commandes Vim dans Visual Studio .
Je sais Ctrlrdans Vim lui-même, mais cette liaison particulière ne fonctionne pas dans VsVim (du moins pas dans ma configuration?).
Ce qui fonctionne cependant, c'est la commande
:red
. C'est un peu plus compliqué que ce qui précède, mais c'est toujours bien quand vous en avez vraiment besoin.la source
En pratique, le
:undolist
est difficile à utiliser et Vim:earlier
et le:later
suivi temporel des modifications ne sont utilisables que pour les corrections de grain de cours.Compte tenu de cela, j'ai recours à un plug-in qui combine ces fonctionnalités pour fournir une arborescence visuelle d'annulations navigables, appelée «Gundo».
Évidemment, c'est quelque chose à utiliser uniquement lorsque vous avez besoin d'une correction à grain fin, ou si vous n'êtes pas sûr de l'état exact du document que vous souhaitez retourner. Voir: Gundo. Représentez graphiquement votre arbre d'annulation Vim avec style
la source