140 votes

Quelles sont les commandes / touches Vim les plus utilisées?

Je suis une programmation Ruby essayant de passer de Textmate pour MacVim, et je vais avoir de la difficulté à patauger dans le gargantua des listes de choses que vous pouvez faire dans VIM et toutes les combinaisons de touches pour eux. Je suis fatigué d'entendre "Vous pouvez utiliser" I " pour l'insertion de texte, ou 'a' pour l'ajout de texte après le caractère, ou 'A' pour l'ajout de texte à la fin de la ligne, ou..." je ne peux pas imaginer tout le monde utilise tous les 20 différentes combinaisons de touches pour naviguer dans le texte, 10 ou si les clés pour commencer à ajouter du texte, et de 18 façons de sélectionner visuellement un bloc interne. Ou pensez-vous!?

Mon idéal feuille de triche serait de 30 à 40 la plus utilisée touches de commandes que tout le monde utilise pour écrire le code sur une base quotidienne, ainsi que l'essentiel des plugins qui rubyists utilisation quotidienne et le 10 la plupart des commandes. En théorie, une fois que j'ai ça et commencer à devenir aussi compétents dans VIM comme je suis dans Textmate, alors je peux commencer à apprendre les milliers d'autres VIM commandes qui me permettra de faire plus efficace.

Ou, suis-je apprendre VIM le mauvais sens tout à fait?

363voto

Greg Hewgill Points 356191

Voici une liste de conseils que j'ai écrit une fois, avec les commandes que j'utilise régulièrement:

Références

Général

  • Presque toutes les commandes peuvent être précédés d'un numéro pour un nombre de répétitions. par exemple. 5dd supprimer 5 lignes
  • <Esc> vous permet de vous sortir de n'importe quel mode et revenir au mode de commande
  • Les commandes précédées par : sont exécutées sur la ligne de commande au bas de l'écran
  • :help aider avec toute commande

La Navigation

  • Le mouvement du curseur: ←hjk l→
  • Par les mots:
    • w mot suivant (par des signes de ponctuation); W le mot suivant (par des espaces)
    • b back word (par des signes de ponctuation); B back word (par des espaces)
    • e en fin de mot (par des signes de ponctuation); E en fin de mot (par des espaces)
  • En ligne:
    • 0 début de ligne; ^ premier non-blanc
    • $ fin de ligne
  • Par le paragraphe:
    • { précédente ligne vide; } prochaine ligne vide
  • Par fichier:
    • gg début du fichier; G fin de fichier
    • 123G aller au numéro de ligne spécifique
  • Par le marqueur:
    • mx jeu de marque x; x va à la marque x
    • '. aller à la position de la dernière modification
    • 'en revenir au dernier point avant de sauter
  • Défilement:
    • ^F de l'avant en plein écran; ^B vers l'arrière plein écran
    • ^D vers le bas la moitié de l'écran; ^U jusqu'à la moitié de l'écran
    • ^E défiler une ligne en haut; ^Y défiler une ligne vers le bas
    • zz centre de la ligne du curseur

L'édition

  • u undo; ^R refaire
  • . répétition de la dernière commande d'édition

L'insertion

Tous insertion commandes sont terminées avec <Esc> pour revenir en mode commande.

  • je insérer du texte au curseur; je insérer du texte en début de ligne
  • un ajouter du texte après le curseur; Un ajouter du texte après la fin de la ligne
  • o ouvrir de nouvelles de la ligne ci-dessous; O ouvrir de nouvelles de la ligne ci-dessus

Changer

  • r remplacer caractère unique; R remplacer plusieurs caractères
  • s changer de caractère unique
  • cw changement de mot; C changement à la fin de la ligne; cc changer toute la ligne
  • c<motion> modifications de texte dans le sens de la motion
  • ci( changement à l'intérieur des parenthèses (voir sélection de l'objet texte pour plus d'exemples)

La suppression

  • x supprimer char
  • dw supprimer un mot; D supprimer jusqu'à la fin de la ligne; dd supprimer une ligne entière
  • d<motion> supprime dans le sens de la motion

Couper et coller

  • yy copie de la ligne dans la mémoire tampon de collage; dd de la ligne de coupe en pâte de tampon
  • p coller le tampon dessous de la ligne du curseur; P coller le tampon au-dessus du curseur de la ligne de
  • xp swap de deux caractères (x pour supprimer un caractère, puis p pour le remettre après la position du curseur)

Les blocs

  • v bloc visuelle flux; V bloc visuelle de la ligne de; ^V bloc visuelle de la colonne
    • la plupart des commandes de mouvements étendre le bloc à la nouvelle position du curseur
    • o déplace le curseur à l'autre bout de la rue
  • d ou x couper le bloc en mémoire tampon de collage
  • y copier le bloc en mémoire tampon de collage
  • > tiret block; < unindent bloc
  • gv resélectionner le dernier bloc visuelle

Mondial

  • :%s/foo/bar/g remplacer toutes les occurrences de "foo", "bar"
    • % est une gamme qui indique chaque ligne dans le fichier
    • /g, est un indicateur qui change de tous les événements sur une ligne au lieu de seulement le premier

La recherche

  • / recherche vers l'avant; ? recherche en arrière
  • * une recherche en avant le mot sous le curseur; # recherche en arrière pour le mot sous le curseur
  • n prochain match dans la même direction; N prochain match dans la direction opposée
  • fx de caractère x; Fx en arrière à caractère précédent x
  • ; déplacer de nouveau pour le même personnage dans la même direction; , déplacer de nouveau pour le même personnage dans la direction opposée

Fichiers

  • :w d'écrire le fichier sur le disque
  • :w name écrire le fichier sur le disque en tant que name
  • ZZ écrire le fichier sur le disque et quitter
  • :n éditer un nouveau fichier; :n! éditer un nouveau fichier sans enregistrer les modifications en cours
  • :q quitter l'édition d'un fichier; :q! quitter l'édition sans enregistrer les modifications
  • :e modifier le même fichier (en cas de changement à l'extérieur de vim)
  • :e . répertoire de l'explorateur

Windows

  • ^Wn nouvelle fenêtre
  • ^Wj vers le bas à côté de la fenêtre; ^Wk jusqu'à la fenêtre précédente
  • ^W_ maximiser la fenêtre courante; ^W= faire toutes les fenêtres de taille égale
  • ^W+ augmenter la taille de la fenêtre; ^W- diminution de la taille de la fenêtre

Source De Navigation

  • % saut de l'appariement entre parenthèse/crochet/accolade, du langage ou de bloquer si la langue module chargé
  • gd aller à la définition de symbole local sous le curseur; ^O retour à la position précédente
  • ^] saut à la définition de symbole mondial (nécessite l' tags fichier); ^T de retour à la position précédente (arbitraire de la pile de positions maintenues)
  • ^N (en mode insertion) automatique en fin de mot

Afficher les modifications locales

Vim a certaines caractéristiques qui le rendent facile à mettre en évidence les lignes qui ont été modifiées à partir d'une version de base du contrôle de code source. J'ai créé un petit script vim qui rend ce facile: http://github.com/ghewgill/vim-scmdiff

24voto

RDL Points 3589

Voici un excellent aide-mémoire pour vim :

entrez la description de l'image ici

23voto

Justin Thomas Points 3292

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

C’est la meilleure chose qui soit pour apprendre le VIM.

4voto

the Tin Man Points 69148

Avez-vous courir à travers Vim intégré dans le tutoriel? Si pas, baisse de la ligne de commande et tapez vimtutor. C'est une excellente façon d'apprendre l'initiale de commandes.

Vim a une quantité incroyable de flexibilité et de puissance, et si vous êtes comme la plupart des vim utilisateurs, vous allez apprendre beaucoup de nouvelles commandes et d'oublier les anciens, puis réapprendre. L'aide intégrée est bon et digne de périodiques de la navigation à apprendre de nouvelles choses.

Il y a plusieurs bonnes Faq et cheatsheets pour vim sur internet. Je vous recommande la recherche pour vim + faq et vim + cheatsheet. Cheat-Feuilles.org#vim est une bonne source, comme c'est Vim Conseils wiki.

3voto

Karl Bielefeldt Points 15469

Ce que la plupart des gens faire est de commencer avec le strict essentiel, comme peut-être je, yw, yy, et p. Vous pouvez continuer à utiliser les touches fléchées pour se déplacer, sélectionner le texte avec la souris, en utilisant les menus, etc. Puis, quand quelque chose est vous ralentir, vous cherchez le moyen plus rapide de le faire, et progressivement ajouter de plus en plus de commandes. Vous pourriez apprendre une nouvelle commande par jour, pour un moment, puis il remonte à un par semaine. Vous vous sentirez assez productif dans un mois. Après une année, vous aurez un bon répertoire, et après 2-3 ans, vous n'aurez même pas penser consciemment ce que vos doigts sont de frappe, et il regardera bizarrement si vous avez de l'énoncer pour quelqu'un. J'ai appris vi en 1993 et à toujours chercher 2 ou 3 nouvelles commandes d'un an.

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