web-dev-qa-db-fra.com

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 tape cela, il apparaît simplement dans le corps de l'objet.

3437
jclancy

Frappé le Esc touche pour entrer en "mode normal". Ensuite, vous pouvez taper : pour entrer en "mode de ligne de commande". Deux points (:) apparaîtront au bas de l'écran et vous pourrez taper l'une des commandes suivantes. Pour exécuter une commande, appuyez sur le bouton Enter clé.

  • :q pour quitter (abréviation de :quit)
  • :q! quitter sans sauvegarder (raccourci pour :quit!)
  • :wq pour écrire et quitter
  • :wq! pour écrire et quitter même si le fichier n'a qu'une autorisation en lecture (si le fichier n'a pas l'autorisation d'écriture: forcer l'écriture)
  • :x pour écrire et quitter (semblable à :wq, mais n'écrit que s'il y a des modifications)
  • :exit pour écrire et quitter (comme :x)
  • :qa pour tout quitter (abréviation de :quitall)
  • :cq quitter sans sauvegarder et obliger Vim à renvoyer une erreur non nulle (c.-à-d. Sortir avec une erreur)

Vous pouvez également quitter Vim directement du "Mode normal" en tapant ZZ pour enregistrer et quitter (comme pour :x) ou ZQ pour quitter (comme pour :q!). (Notez que la casse est importante ici. ZZ et zz ne veut pas dire la même chose.)

Vim dispose d'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.

4570
dirvine

Avant de saisir une commande, appuyez sur la touche Esc clé . Une fois que vous y entrez, appuyez sur le Return confirmer.

Esc termine la commande en cours et commute Vim sur 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 que vous ne modifiez pas le fichier.

La plupart des commandes ont des abréviations, avec une partie optionnelle entre crochets: c[ommand].

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

Safe-quit (é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é apportées dans le courant tampon .
  • :qa[ll] * Quittez toutes les fenêtres et Vim, à moins que certains tampons n'aient été modifiés.

Invite-quit (invite s'il y a des modifications non enregistrées)

  • :conf[irm] q[uit] * Quitte, mais donne Invite lorsqu'il y a des tampons qui ont été modifiés.
  • :conf[irm] xa[ll] * Écrivez tous les tampons modifiés et quittez Vim. Afficher une invite lorsque certains tampons ne peuvent pas être écrits.

Écrire (enregistrer) les modifications et quitter:

  • :wq Ecrit le fichier actuel (même s'il n'a pas été modifié) et quitte. L'écriture échoue lorsque le fichier est en lecture seule ou que la mémoire tampon n'a pas de nom. :wqa[ll] * pour toutes les fenêtres.
  • :wq! Idem, 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.

Ignorer les modifications et quitter:

  • :q[uit]!ZQ * Quitte sans écrire, même lorsque les tampons visibles ont été modifiés. 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 masques masqués) sont perdues.

Appuyez sur Return pour confirmer la commande.

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

Vim dispose d’une aide étendue, type Esc:helpReturn pour l'ouvrir.

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

164
Nick Volynkin

Les images valent mille commandes et options Unix:

Enter image description here

J'attire cela de mes étudiants chaque semestre et ils semblent comprendre vi par la suite.

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

Au démarrage, vi passe en mode COMMAND, où vous pouvez taper brièvement quelques commandes de caractères, en aveugle . Tu sais ce que tu fais; 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: passe en mode INSERT au début de la ligne
  • a: ajoute après le curseur
  • A: ajouter en fin de ligne
  • o: ouvre une nouvelle ligne en dessous de la ligne en cours
  • O: ouvre une nouvelle ligne à la place de la ligne en cours

Maintenant, répondez à la question: quitter.

Vous pouvez quitter vi du mode EX:

  • q: si vous n'avez pas fait de modifications ou si vous les avez sauvegardées auparavant
  • q!: ignore toutes les modifications et quitte
  • wq: sauvegarder et quitter
  • x: c'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 accéder au mode EX?

Le mode EX est destiné aux longues commandes que vous pouvez voir en train de taper sur la dernière ligne de l'écran. En mode COMMAND, vous appuyez sur les deux points, :, et deux points apparaissent à la ligne inférieure, où vous pouvez taper les commandes ci-dessus.

À partir du mode INSERT, vous devez appuyer sur ESC, c’est-à-dire sur le bouton Echap, passer en mode COMMAND, puis sur: pour accéder au mode EX.

Si vous n'êtes pas sûr, appuyez sur ESC et cela vous mènera en mode commande.

Donc, la méthode robuste est ESC -: - x-Enter qui enregistre votre fichier et se ferme.

148
Gergely

Si vous voulez quitter sans enregistrer dans Vim et obliger Vim à renvoyer un code de sortie non nul, vous pouvez utiliser :cq.

Je l'utilise tout le temps parce que je ne peux pas être dérangé par le décalage de couleur pour !. Je transmets souvent à Vim des éléments qu'il n'est pas nécessaire de sauvegarder dans un fichier. Nous avons également un wrapper SVN impair au travail qui doit être quitté avec une valeur différente de zéro pour annuler un enregistrement.

74
Sue Spence

Il s’agit du pire scénario possible lorsque vous quittez Vim si vous voulez simplement sortir, vous ne savez pas ce que vous avez fait et vous ne vous souciez pas de ce qui va arriver aux fichiers que vous avez ouverts.

Ctrl-cEnterEnterviEnterCtrl-\Ctrl-n:qa!Enter

Cela devrait vous faire sortir la plupart du temps.

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

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

  • QappendEnter

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

  • :set insertmode (c'est le cas quand Ctrl-\Ctrl-n vous ramène en mode normal)


Edit: Cette réponse a été corrigée en raison des cas précédents. C'était:

EscEscEsc:qa!Enter

Cependant, cela ne fonctionne pas si vous êtes entré en mode Ex. Dans ce cas, vous devrez faire:

viEnter:qa!Enter

Donc, une commande complète pour "Je ne veux pas savoir ce que j'ai fait et je ne veux rien sauvegarder, je veux juste sortir maintenant!" serait

viEnterEscEscEsc:qa!Enter

41
Heikki Naski

Si vous devez quitter Vim en mode facile (lorsque vous utilisez l’option -y), vous pouvez passer en mode Vim normal en appuyant sur Ctrl + L et alors n'importe laquelle des options de sortie normales fonctionnera.

36
wsams

Vim a trois modes de fonctionnement: mode entrée, mode commande et mode ex.

mode de saisie - tout ce que vous tapez, toutes les frappes de touche sont répercutés à l'écran.

mode commande ou mode évasion - tout ce que vous tapez dans ce mode est interprété comme une commande.

mode Ex - ceci est un autre éditeur, ex. C'est un éditeur de ligne. Cela fonctionne par ligne ou sur une gamme de lignes. Dans ce mode, un : apparaît au bas de l'écran. Ceci est l'ex-éditeur.

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

Sortie du mode ex

  1. Vous devez vous assurer que vous êtes en mode Commande. Pour ce faire, appuyez simplement sur le bouton Esc clé.

  2. Allez au mode ex en appuyant sur le bouton : clé

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

    :q - quitter :q! - quitter sans enregistrer :wq - enregistrer et quitter ou écrire et quitter :wq! - identique à wq, mais l'écriture forcée dans le cas où les autorisations de fichier sont en lecture seule :x - écrire et quitter :qa - tout quitter. utile lorsque plusieurs fichiers sont ouverts comme: vim abc.txt xyz.txt

Sortie du mode commande

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

  2. Appuyez sur ZZ (shift zz) - enregistrez et quittez.

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

27
tovishalck

Après avoir frappé ESC (ou cmd + C sur mon ordinateur) vous devez frapper : pour que la commande Invite apparaisse. Ensuite, vous pouvez entrer quit.

Vous constaterez peut-être que la machine ne vous permettra pas de quitter, car vos informations n'ont pas été enregistrées. Si vous souhaitez quand même arrêter, entrez ! directement après la sortie (c.-à-d. :quit!).

25
deleteMe

En fait, il est incroyablement facile de quitter vim.

Presse Escape, faites demi-tour deux fois, donnez un coup de pied au chat, faites la tasse de thé parfaite, exécutez un kilomètre quatre minutes , montez à l’est, faites le Kessel Run en moins de 12 parsecs , sauvez le Kobayashi Mar , revendiquez le trône de fer , atteignez paix mondiale , appuyez sur :qEnter

22
Caltor

J'ai installé Vim en installant un client Git sous Windows. :q ne quitterait pas Vim pour moi. :exit a cependant ...

16
Bjørn van Dommelen

Je voudrais ajouter mon 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<split position> ou :<split position>q ferme 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 inversement.

L'ordre des positions de division dans la commande quit n'a pas d'importance. :2q ou :q2 ferme la deuxième division.

Si la position de division que vous passez à la commande est supérieure au nombre de divisions actuelles, la dernière division sera simplement fermée.

Par exemple, si vous exécutez le q100 dans la configuration de la fenêtre ci-dessus dans laquelle il n'y a que trois divisions, la dernière division sera scindée (Division 3).

5
Subash

Quitter Vim

  1. Ctrl+Z
  2. X key
  3. C key
5
Alimov Shohrukh

Presse Esc pour sortir du mode insertion et vous pouvez alors utiliser :wq pour enregistrer et quitter ou simplement :q pour quitter normalement. :)

1
Connie