web-dev-qa-db-fra.com

Comment fermer vim depuis la ligne de commande?

Je sais que c’est plus une question linux générale mais w/e. Ainsi, lorsque je saisis un programme tel que vim dans l'invite de commande, il affiche tout le texte du fichier et je peux le modifier, etc. Mais je ne vois pas comment fermer ou enregistrer le fichier et revenir à l'invite de commande sans tuer. le processus. Toute aide est appréciée.

46
Letseatlunch

Dans vim, il existe 3 modes différents:

  • Insérer - permet de taper et de modifier normalement
  • Visuel - utilisé pour sélectionner copier/coller, etc.
  • Normal - utilisé pour les commandes

Pour revenir au mode normal, vous pouvez toujours appuyer sur esc.

Une fois que vous êtes en mode normal, appuyez sur : pour commencer votre commande (elle apparaît en bas à gauche). Les commandes suivantes sont liées à la fermeture de vim:

  • :q - quitter si aucune modification n'a été apportée
  • :q! - quitte et détruit toutes les modifications apportées
  • :wq - écrit les modifications (sauvegarde) et quitte
  • :x - similaire à :wq, n'écrivez le fichier que si des modifications ont été apportées, puis quittez
68
jondavidjohn

Tout d'abord, appuyez sur le escape clé.1

Ensuite, tapez simplement ZZ (deux z majuscules consécutifs).
Ou tapez :x. L'un ou l'autre enregistrera toutes les modifications et partira.
Vous pouvez également utiliser :wq

Alternativement, vous pouvez taper :q (a.k.a, "quitter, s'il vous plaît") Cela ne se fermera que si vous n'avez pas apporté de modifications.

Si vous avez apporté des modifications et que vous souhaitez les supprimer et les quitter, saisissez :q! (a.k.a "quittez, bon sang!")

1 : Cela garantit que vous êtes en mode "commande". Ce que vous voulez pour les commandes de frappe, comme celles nécessaires pour quitter.

14
belacqua

À notre grand désagrément, il n’existe pas de méthode générale pour quitter les programmes en ligne de commande, comme le bouton "X" pour les programmes graphiques.

De nombreux programmes en ligne de commande ont pour thème l'utilisation de Q (par exemple, man et top) ou Ctrl+C (par exemple, ping et watch) pour quitter, mais cela varie considérablement, en particulier parmi les éditeurs de texte:

  • Vim utilise en particulier la combinaison obscure de :q! alors Enter, généralement précédé de plusieurs presses de Esc pour faire bonne mesure.
  • Emacs , un autre joyau, préfère Ctrl+X suivi par Ctrl+C.

Les rédacteurs comme celui-ci sont des pièges pour les inexpérimentés. Ma préférence personnelle et ma recommandation sont les suivantes: lorsque je suis obligé de modifier du texte sur la ligne de commande, utilisez plutôt le plus explicite Joe's Own Editor (JOE) .

4
ændrük

Outre la réponse de jondavidjohn, voici deux liens vers des informations indispensables sur l'utilisation de vim.

  1. Ceci est un graphique de clavier qui vous montre ce que chaque touche fait selon que vous soyez en mode édition, en mode commande ou en mode visuel:

    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

  2. C’est le meilleur tutoriel vim que j’ai jamais travaillé. Il est conversationnel et facile à comprendre, ce qui est dû au format IRC/messagerie instantanée.

    http://www.vi-improved.org/tutorial.php

Enfin, certains, comme aendruk, ne souhaitent tout simplement pas utiliser les éditeurs de texte en ligne de commande avancés. Vim, en particulier, a une courbe d'apprentissage abrupte et demande un effort initial pour s'y habituer. Mais c'est très rapide et très puissant. Si vous êtes intéressé par Linux au-delà de l’utilisation de base du bureau, cela vaut la peine de passer du temps à apprendre un éditeur de texte en ligne de commande décent tel que Vim ou Emacs. Si vous avez juste besoin de modifier du texte sans trop vous soucier, essayez plutôt de saisir gedit filename.txt. Il lancera un programme graphique familier, un peu comme le Bloc-notes de Windows.

3
djeikyb

si Esc :q! ne fonctionne pas,

essayez d'abord Ctrl+q (pour déverrouiller l'écran qui était verrouillé avec Ctrl+s)

puis réessayez Esc :q! (quitter sans sauvegarder) ou Esc :wq (pour sauvegarder et quitter)

1
Gael P

Vous voulez sortir sans sauvegarder:

  1. Frappé ESC
  2. Frappé ZQ

Quitter avec save:

  1. Frappé ESC
  2. Frappé ZZ
0
Zoltan