Comment sortir de l’éditeur Vim?

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

"type :quit to quit VIM" 

Mais quand je tape cela, il apparaît simplement dans le corps de l’object.

Appuyez sur la touche Esc pour entrer en “mode normal”. Ensuite, vous pouvez taper : pour entrer en “mode ligne de commande”. Un signe deux-points (:) apparaîtra au bas de l’écran et vous pouvez saisir l’une des commandes suivantes. Pour exécuter une commande, appuyez sur la touche Entrée .

  • :q pour quitter (raccourci pour :quit )
  • :q! quitter sans sauvegarder (abréviation de :quit! )
  • :wq pour écrire et quitter
  • :wq! pour écrire et quitter même si le fichier ne dispose que d’une autorisation de lecture (si le fichier n’a pas de permission d’écriture: force write)
  • :x pour écrire et quitter (similaire à :wq , mais écrivez seulement s’il y a des modifications)
  • :exit pour écrire et quitter (même que :x )
  • :qa pour tout quitter (abréviation de :quitall )
  • :cq quitte sans sauvegarder et fait que Vim renvoie une erreur non nulle (c’est-à-dire quitte avec une erreur)

Vous pouvez également quitter Vim directement depuis “Mode de commande” en tapant ZZ pour enregistrer et quitter (même que :x ) ou ZQ pour quitter (même chose que :q! ). (Notez que la casse est importante ici. ZZ et zz ne signifient pas la même chose.)

Vim a une aide étendue – à laquelle vous pouvez accéder avec la commande :help – où vous pouvez trouver des réponses à toutes vos questions et un tutoriel pour les débutants.

Avant d’entrer une commande, appuyez sur la touche Échap . Après l’avoir entré, appuyez sur Retour pour confirmer.

Esc termine la commande en cours et fait passer Vim en mode normal . Maintenant, si vous appuyez sur :, le : apparaîtra au bas de l’écran. Cela confirme que vous tapez réellement une commande et ne modifiez pas le fichier.

La plupart des commandes ont des abréviations, la partie facultative étant entre crochets: c[ommand] .

Les commandes marquées avec ‘*’ sont uniquement Vim (non implémentées dans Vi).

Quitter en toute sécurité (échoue s’il y a des modifications non enregistrées):

  • :q[uit] Quitte la fenêtre en cours . Quittez Vim s’il s’agit de la dernière fenêtre. Cela échoue lorsque des modifications ont été apscopes au tampon actuel.
  • :qa[ll] * Quitte toutes les fenêtres et Vim, sauf si certains tampons ont été modifiés.

Prompt-quit (invite s’il y a des modifications non enregistrées)

  • :conf[irm] q[uit] * Quittez, mais donnez une invite quand il y a des tampons qui ont été modifiés.
  • :conf[irm] xa[ll] * Ecrit tous les tampons modifiés et quitte Vim. Affichez une invite lorsque certains tampons ne peuvent pas être écrits.

Ecrivez (sauvegardez) les modifications et quittez:

  • :wq Ecrit le fichier en cours (même s’il n’a pas été modifié) et quitte. L’écriture échoue lorsque le fichier est en lecture seule ou que le tampon n’a pas de nom. :wqa[ll] * pour toutes les fenêtres.
  • :wq! Le même, mais écrit même des fichiers en lecture seule. :wqa[ll]! * pour toutes les fenêtres.
  • :x[it] , ZZ (avec détails ). Ecrivez le fichier uniquement s’il a été modifié et quittez :xa[ll] * pour toutes les fenêtres.

Jeter les modifications et quitter:

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

Appuyez sur Retour pour confirmer la commande.

Cette réponse ne fait pas référence à toutes les commandes et arguments d’écriture et de fermeture de Vim. En effet, ils sont référencés dans la documentation de Vim .

Vim a une aide intégrée complète, tapez Esc :help Return pour l’ouvrir.

Cette réponse a été inspirée par l’ autre , initialement écrit par @dirvine et édité par d’autres utilisateurs de SO. J’ai inclus plus d’informations de la référence Vim, des commentaires SO et d’autres sources. Les différences pour Vi et Vim sont également reflétées.

Les images valent mille commandes et options Unix:

Entrez la description de l'image ici

Je dessine ceci à mes étudiants chaque semestre et ils semblent saisir vi après.

vi est une machine à états finis avec seulement trois états.

Au démarrage, vi passe en mode COMMAND, où vous pouvez taper à petit feu, peu de commandes de caractères, à l’ aveuglette . Tu sais ce que tu fais; ce n’est pas pour les amateurs.

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

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

Maintenant, répondre à la question: sortir.

Vous pouvez quitter vi du mode EX:

  • q: si vous n’avez pas apporté de modifications ou si vous les avez préalablement enregistrées
  • q!: ignore les modifications et quitte
  • wq: enregistrer et quitter
  • x: ceci est égal à wq

w et x acceptent 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 redonner ici.

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

Le mode EX est destiné aux longues commandes que vous pouvez voir au bas de l’écran. En mode COMMAND, vous appuyez deux-points, et un deux-points apparaît à la dernière ligne, où vous pouvez taper les commandes ci-dessus.

A partir du mode INSERT, vous devez appuyer sur ECHAP, c’est-à-dire sur le bouton Echap, pour passer en mode COMMANDE, puis sur: pour passer en mode EX.

Si vous n’êtes pas sûr, appuyez sur ESC et cela vous amènera au mode commande.

La méthode robuste est donc ESC -: – x-Enter qui enregistre votre fichier et se ferme.

Si vous voulez quitter sans sauvegarder dans Vim et que Vim retourne un code de sortie différent de zéro, vous pouvez utiliser :cq .

Je l’utilise tout le temps parce que je ne peux pas être dérangé par un changement de couleur pour ! . Je dirige souvent des choses vers Vim qui n’ont pas besoin d’être enregistrées dans un fichier. Nous avons également un wrapper SVN impair au travail qui doit être quitté avec une valeur non nulle pour interrompre un checkin.

Ceci est pour le pire scénario de sortie de Vim si vous voulez simplement sortir, ne pas savoir ce que vous avez fait et vous ne vous souciez pas de ce qui va arriver aux fichiers que vous avez ouverts.

Ctrl-c Entrée Entrée vi Entrez Ctrl- \ Ctrl-n :qa! Entrer

Cela devrait vous faire sortir la plupart du temps.

Quelques cas intéressants où vous avez besoin de quelque chose comme ceci:

  • i Ctrl-o vg (vous entrez en mode insertion, puis le mode visuel et le mode en attente de l’opérateur)

  • Qappend Enter

  • i Ctrl-o gQ Ctrl-r = Ctrl-k (grâce aux porges pour ce cas)

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


Edit: Cette réponse a été corrigée en raison de cas ci-dessus. C’était:

Esc Esc Esc :qa! Entrer

Cependant, cela ne fonctionne pas si vous avez entré le mode Ex. Dans ce cas, vous devez faire:

vi Entrez :qa! Entrer

Donc, une commande complète pour “Je ne veux pas savoir ce que j’ai fait et je ne veux rien sauver, je veux juste sortir maintenant!” serait

vi Entrez Esc Esc Esc :qa! Entrer

Si vous avez besoin de quitter Vim en mode facile (tout en utilisant l’option -y ), vous pouvez passer en mode Vim normal en appuyant sur Ctrl + L , puis toutes les options de sortie normales fonctionneront.

Après avoir appuyé sur ESC (ou cmd + C sur mon ordinateur), vous devez appuyer sur : pour que l’invite de commande apparaisse. Ensuite, vous pouvez entrer dans quit .

Vous pouvez constater que la machine ne vous permettra pas de quitter car vos informations n’ont pas été enregistrées. Si vous souhaitez quitter de toute façon, entrez ! directement après l’arrêt (c.-à-d :quit! ).

Vim dispose de trois modes de fonctionnement: le mode d’entrée, le mode commande et le mode ex.

Mode de saisie – tout ce que vous tapez, toutes les frappes sont répercutées à l’écran.

Mode de commande ou mode d’échappement – tout ce que vous tapez dans ce mode est interprété comme une commande.

Ex mode – c’est un autre éditeur, ex. C’est un éditeur de ligne. Cela fonctionne par ligne ou basé sur une gamme de lignes. Dans ce mode, a : apparaît en bas de l’écran. Ceci est l’ex éditeur.

Pour quitter Vim, vous pouvez quitter le mode ex ou le mode commande. Vous ne pouvez pas quitter Vim lorsque vous êtes en mode de saisie.

Quitter le mode ex

  1. Vous devez vous assurer que vous êtes en mode Commande. Pour ce faire, appuyez simplement sur la touche Echap .

  2. Aller au mode ex en appuyant sur la touche :

  3. Utilisez l’une des combinaisons suivantes en mode ex pour quitter:

    :q – quitte :q! – quitter sans sauvegarder :wq – enregistrer et quitter ou écrire et quitter :wq! – idem wq, mais force write dans le cas où les permissions du fichier sont en lecture seule :x – write & quit :qa – tout quitter. utile lorsque plusieurs fichiers sont ouverts comme: vim abc.txt xyz.txt

Quitter le mode de commande

  1. Appuyez sur la touche d’échappement. Vous l’avez probablement déjà fait si vous êtes en mode commande.

  2. Capital presse ZZ ( shift zz ) – save & exit

  3. Appuyez sur la majuscule ZQ ( shift zq ) – quittez sans sauvegarder.

J’ai obtenu Vim en installant un client Git sous Windows. :q ne quitterait pas Vim pour moi. :exit a cependant fait …

Je voudrais append mes deux cents à ce sujet. La question a été posée ici .

La commande q avec numéro ferme la division donnée dans cette position.

:q ou :q fermera la division dans cette position.

Disons que la disposition de votre fenêtre Vim est la suivante:

 ------------------------------------------------- | | | | ------------------------------------------------- | | | | | | | | | Split 1 | Split 2 | Split 3 | | | | | ------------------------------------------------- 

Si vous exécutez la commande q1 , la première division sera fermée. q2 fermera la deuxième division et vice versa.

L’ordre de la position de division dans la commande de sortie n’a pas d’importance. :2q ou :q2 fermera le deuxième partage.

Si la position de partage que vous transmettez à la commande est supérieure au nombre de divisions en cours, elle fermera simplement la dernière division.

Par exemple, si vous exécutez le q100 sur la configuration de fenêtre ci-dessus où il n’y a que trois divisions, il fermera le dernier partage (Split 3).

Voici comment vous pouvez sortir de Vim. Appuyez sur Ctrl & ‘Z’ puis sur ‘X’ et ‘C’.

 Ctrl -> +Z -> +X -> +C 

Appuyez sur Echap (ou Ctrl + C ), puis tapez :qq signifie quit .

Vous pouvez vous attendre à ce que la machine ne vous permette pas de quitter, car vous n’avez pas enregistré ce sur quoi vous travaillez.

Dans ce cas, vous devez taper :wq pour enregistrer et quitter ou :q! pour quitter sans sauver.