4401 votes

Comment quitter l'éditeur Vim ?

Je suis coincé et je ne peux pas m'échapper. Ça dit :

"type :quit<Enter> to quit VIM"

Mais lorsque je le tape, il apparaît simplement dans le corps de l'objet.

173 votes

Essayez-vous simplement de quitter VIM ? Si c'est le cas, appuyez sur "escape" et tapez ensuite ':q'.

58 votes

N'oubliez pas le côlon ! Vous devez taper :quit et ensuite on a frappé le [ENTER] clé.

127 votes

Il est très facile d'apprendre les bases de vim, et il est intégré à votre système. Dans le terminal, tapez "vimtutor". 25 minutes plus tard, vous serez plus rapide que votre éditeur de texte habituel !

5532voto

dirvine Points 5431

Appuyez sur la touche Esc pour passer en "mode normal". Vous pouvez alors taper : pour passer en "mode ligne de commande". Les deux points ( : ) apparaîtra au bas de l'écran et vous pourrez taper l'une des commandes suivantes. Pour exécuter une commande, appuyez sur la touche Enter clé.

  • :q de démissionner (abréviation de :quit )
  • :q! pour quitter sans sauvegarder (abréviation de :quit! )
  • :wq d'écrire et d'abandonner
  • :wq! pour écrire et quitter même si le fichier n'a que la permission de lecture (si le fichier n'a pas la permission d'écriture : forcer l'écriture)
  • :x pour écrire et quitter (similaire à :wq mais n'écrivez que s'il y a des changements)
  • :exit pour écrire et sortir (comme :x )
  • :qa pour tout quitter (abréviation de :quitall )
  • :cq pour quitter sans sauvegarder et faire en sorte que Vim renvoie une erreur non nulle (c'est-à-dire quitter avec erreur)

Vous pouvez également quitter Vim directement à partir du "mode normal" en tapant ZZ pour sauvegarder et quitter (comme :x ) ou ZQ pour abandonner (comme :q! ). (Notez que la casse est importante ici. ZZ y zz ne signifient pas la même chose).

Vim dispose d'une aide complète - à laquelle vous pouvez accéder avec la commande :help commande - où vous pouvez trouver des réponses à toutes vos questions et un tutoriel pour les débutants.

19 votes

À moins que vous n'ayez remappé esc ou que vous ayez un mappage bizarre dans votre .vimrc, alors il devrait certainement le faire. Si vous êtes sous linux, tapez xev et assurez-vous que escape est le type de touche que vous obtenez lorsque vous appuyez sur escape.

25 votes

N'oubliez pas que vous pouvez utiliser ctrl+c si vous ne pouvez pas utiliser Esc (comme moi, car mon shell est dans TotalTerminal). vim.wikia.com/wiki/Avoid_the_escape_key

27 votes

:x == ZZ mais :x != :wq . :x écrire le fichier si le fichier a été modifié, :wq écrire le fichier toujours (question c.-à-d. lors de l'utilisation de inotify ).

353voto

Gergely Points 1734

Les images valent mille commandes et options Unix :

Enter image description here

Je dessine cela à mes étudiants chaque semestre et ils semblent saisir vi par la suite.

Vi est un machine à états finis avec seulement trois états.

Au démarrage, vi passe en mode COMMANDE, où vous pouvez taper des commandes courtes de quelques caractères, aveuglément . Vous savez ce que vous faites ; ce n'est pas pour les amateurs.

Lorsque vous voulez réellement éditer du texte, vous devez passer en mode INSERT avec une commande à un caractère :

  • i : aller à INSERT à la place du curseur
  • I : passer en mode INSERT au début de la ligne
  • a : ajouter après le curseur
  • A : ajouter à la fin de la ligne
  • o : Ouvrir le site une nouvelle ligne sous la ligne actuelle
  • O : Ouvrir le site une nouvelle ligne à la place de la ligne actuelle

Maintenant, pour répondre à la question : c'est excitant.

Vous pouvez quitter vi à partir du mode EX :

  • q : si vous n'avez pas fait de modifications, ou si vous les avez sauvegardées au préalable
  • q! : ignore toute modification et quitter
  • wq : sauvegarder et quitter
  • x : ceci est égal à wq

w y x accepte un paramètre de nom de fichier. Si vous avez démarré vi avec un nom de fichier, vous n'avez pas besoin de le donner à nouveau.

Enfin, le plus important : comment atteindre le mode EX ?

Le mode EX est destiné aux commandes longues que vous pouvez voir taper sur la ligne inférieure de l'écran. En mode COMMANDE, vous appuyez sur deux points, : et un deux-points apparaîtra sur la ligne inférieure, où vous pourrez taper les commandes ci-dessus.

Depuis le mode INSERT, vous devez appuyer sur ESC, c'est-à-dire sur le bouton Echap, pour passer en mode COMMAND, puis sur : pour passer en mode EX.

Si vous n'êtes pas sûr, appuyez sur ESC et vous passerez en mode commande.

La méthode la plus robuste est ESC-:-x-Enter qui enregistre votre fichier et quitte.

195voto

Nick Volynkin Points 7860

Avant d'entrer une commande, touchez le Esc clé . Après l'avoir saisie, appuyez sur la touche Return pour confirmer.

Esc termine la commande en cours et fait passer Vim en mode mode normal . Maintenant, si vous appuyez sur : le : apparaîtra au fond de l'écran. Cela confirme que vous êtes bien en train de taper une commande et non d'éditer le fichier.

La plupart des commandes ont des abréviations, avec une partie facultative entre parenthèses : c[ommand] .

Les commandes marquées d'un '*' sont réservées à Vim (non implémentées dans Vi).

Quitter en toute sécurité (échoue s'il y a des changements non sauvegardés) :

  • :q[uit] Quitter le programme en cours fenêtre . Quittez Vim si c'est la dernière fenêtre. Cela échoue lorsque des changements ont été effectués dans la fenêtre courante. tampon .
  • :qa[ll] * Quitter tout Windows et Vim, à moins que certains tampons aient été modifiés.

Prompt-quit (demande s'il y a des changements non sauvegardés)

  • :conf[irm] q[uit] * Quitter, mais donner un message d'alerte lorsque certains tampons ont été modifiés.
  • :conf[irm] xa[ll] * Écrire tous les tampons modifiés et quitter Vim. Afficher une invite lorsque certains tampons ne peuvent pas être écrits.

Écrivez (enregistrez) les modifications et quittez :

  • :wq Écrit le fichier courant (même s'il n'a pas été modifié) et quitte. L'écriture échoue si le fichier est en lecture seule ou si le tampon n'a pas de nom. :wqa[ll] * pour tous les Windows.
  • :wq! La même chose, mais écrit même les fichiers en lecture seule. :wqa[ll]! * pour tous les Windows.
  • :x[it] , ZZ (avec détails ). N'écrivez que le fichier s'il a été modifié et de démissionner, :xa[ll] * pour tous les Windows.

Abandonnez les modifications et quittez :

  • :q[uit]! ZQ * Quitter sans écrire, même lorsque les tampons visibles ont des changements. Ne quitte pas lorsqu'il y a des tampons cachés modifiés.
  • :qa[ll]! *, :quita[ll][!] * Quittez Vim, toutes les modifications apportées aux tampons (y compris les cachés) sont perdues.

Appuyez sur Return pour confirmer la commande.

Cette réponse ne fait pas référence à toutes les commandes et arguments d'écriture et de sortie de Vim. En effet, elles sont référencées dans le Documentation sur Vim .

Vim dispose d'une aide intégrée complète, tapez Esc:helpReturn pour l'ouvrir.

Cette réponse a été inspirée par le <a href="https://stackoverflow.com/a/11828573/2790048">l'autre </a>, dont l'auteur original est @dirvine et qui a été modifié par d'autres utilisateurs de SO. J'ai inclus d'autres informations provenant de la référence Vim, des commentaires de SO et d'autres sources. Les différences entre Vi et Vim sont également reflétées.

90voto

Sue Spence Points 94

Si vous voulez quitter sans sauvegarder dans Vim y pour que Vim renvoie un code de sortie non nul, vous pouvez utiliser :cq .

Je l'utilise tout le temps parce que je ne peux pas m'embêter à faire un pinky shift pour ! . J'envoie souvent à Vim des choses qui n'ont pas besoin d'être enregistrées dans un fichier. Nous avons également un étrange wrapper SVN au travail qui doit être quitté avec une valeur non nulle afin d'interrompre un checkin.

26 votes

Je l'utilise aussi pour interrompre un commit git, ou visudo, ou crontab,

2 votes

Abandonner un commit git avec :q! fonctionne bien, puisque git vérifie un message non vide et non un code de sortie non nul.

3 votes

Je sais que ça marche, c'est juste que :cq ne nécessite pas la touche majuscule :-)

76voto

Heikki Naski Points 872

Il s'agit de la commande de sortie ultime, sans aucun sens, pour les pires scénarios de sortie de Vim si vous voulez sortir, que vous n'avez aucune idée de ce que vous avez fait et que vous ne vous souciez pas de ce qui va arriver aux fichiers que vous avez ouverts.

Ctrl - cEnterCtrl - \Ctrl-nEnter:qa!Enter

Cela vous permettra de sortir la plupart du temps. La plupart du temps.

Vous pourriez penser, naïvement, que vous pouvez juste frapper Esc plusieurs fois et ensuite faire :qa! . Oh, comme vous vous tromperiez.

Voyez ces cas intéressants où la frappe Esc n'est pas suffisant :

  • iCtrl - ovg (vous entrez en mode insertion, puis en mode visuel et enfin en mode opérateur en attente)

  • QappendEnter

  • iCtrl - ogQCtrl - r=Ctrl - k (merci à porges pour ce cas)

  • iCtrl - ogQCtrl - r=inputdialog('foo','bar')Enter

  • :set insertmode (il s'agit d'un cas où Ctrl - \Ctrl-n vous ramène au mode normal)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X