web-dev-qa-db-fra.com

Quel est le meilleur moyen de vous forcer à maîtriser vi?

Il y a un bon moment, j'ai lu n article du créateur de viem , éclaircissant beaucoup d'idées fausses sur vi, et expliquant en même temps pourquoi c'est une bonne idée (et pourquoi elle est très populaire pour le 30 dernières années +). Le même gars a aussi n grand ensemble de feuilles de triche graphiques qui enseignent les bases quelques bits à la fois.

Je suis convaincu.

En fait, je suis convaincu depuis 2 ans. Mais je n’ai toujours pas vraiment réussi à me forcer à apprendre vi en tant que mon éditeur principal, la courbe d’apprentissage est trop longue. Quand je me mets au travail, une productivité acceptable mais immédiate (avec mon éditeur actuel) a jusqu’à présent gagné une productivité énorme plus loin dans l’avenir (avec vi).

Quelqu'un a-t-il de bons conseils pour aider à dépasser la courbe d'apprentissage? Il peut s'agir de conseils directs, d'un autre tutoriel ou d'un article, peu importe.

Edit: Notez que je connais les variantes vim/gVim , Cream et MacVim (etc.) de vi. J'ai gardé ma question sur vi pour faire référence à la famille vi dans son ensemble. Merci pour toutes les bonnes réponses.

Mise à jour (avril 2009)

J'utilise Vim (plus précisément MacVim) dans ma vie professionnelle quotidienne depuis décembre dernier. Je n'y retournerai pas :-)

Bonne chance à tous dans leur maîtrise de Vim.

202
webmat

Tout d’abord, vous voudrez peut-être prendre Vim; il a un ensemble de fonctionnalités très supérieur avec tout ce que vi a.

Cela dit, il faut de la discipline pour apprendre. Si vous avez un emploi et que vous ne pouvez pas vous permettre de perdre votre productivité (sans vous faire virer), je vous conseillerais de participer à un projet du week-end dans le seul but d'apprendre à l'éditeur. Gardez sa documentation ouverte pendant que vous travaillez et soyez assez discipliné pour ne pas vous échapper. En apprenant plus, en devenant efficace et en commençant à compter sur la mémoire musculaire, il ne sera pas aussi difficile de s'y tenir.

J'utilise Vim depuis si longtemps que je ne pense même pas aux touches sur lesquelles appuyer pour rechercher, naviguer ou enregistrer. Et mes mains ne quittent jamais le clavier. Utiliser Vim est l’un des meilleurs choix que j’ai fait dans ma carrière de programmeur.

124
Lucas Oman

La première chose que je ferais est de poser un morceau de papier ou un livre sur vos touches de direction et vos touches ins/home/end/pgup/down. Ce n'est pas nécessaire dans Vi.

Ensuite, je m'habituerais à appuyer sur Ctrl + [à chaque fois que l'on vous demandera de toucher Échap. C'est beaucoup plus rapide et vous n'aurez pas besoin de retirer vos mains du clavier.

Ensuite, je regarderais mes screencasts:

http://www.youtube.com/watch?v=FcpQ7koECgk

http://www.youtube.com/watch?v=c6WCm6z5msk

http://www.youtube.com/watch?v=BPDoI7gflxM

http://www.youtube.com/watch?v=J1_CfIb-3X4

Ensuite, juste pratique pratique pratique.

edit La raison pour laquelle vous évitez les touches à flèche est qu'elles vous ralentissent. L'un des plus grands avantages de Vim est la vitesse qu'il vous permet. Les touches fléchées vous empêchent également de vraiment embrasser la nature modale, qui est très puissante une fois maîtrisée.

64
Aaron Jensen

Étape 0: apprendre à toucher au clavier. Sérieusement - si vos doigts ne savent pas où sont les clés, alors vim sera pénible. Et même si vous refusez vim, la frappe tactile va améliorer votre programmation (demander Steve Yegge ) en rendant l'esprit de surveiller le lien sans frottement. Il existe un lot sur logiciel qui peut vous aider à améliorer votre frappe.

Étape 1: utilisez vimtutor pour vous aider à démarrer. Il est dans gvim (dans le menu d'aide, je pense) ou vous pouvez simplement taper 'vimtutor' sur la ligne de commande. Cela prendra entre 30 et 45 minutes, puis vos doigts connaîtront les bases de vi/vim et vous devriez pouvoir modifier des fichiers sans vouloir jeter votre clavier par la fenêtre.

Étape 2: utilisez vim partout. Voir cette question pour des astuces et des liens sur l’utilisation des raccourcis vim et vi sur la ligne de commande, depuis votre navigateur Web, pour la composition d’e-mails, dans votre IDE ... Vous devez utiliser vim pour intégrer les raccourcis clavier dans votre mémoire musculaire.

Étape 3: en savoir plus sur vim. Vous aurez seulement gratté la surface avec vimtutor. Vous pouvez voir cette vidéo ou lire cet article (les deux à propos des "Sept habitudes de traitement de texte efficace". Vous pouvez lire à propos de astuces et astuces sur StackOverflow . Vous pouvez parcourir vimtips . Apprendre un peu souvent serait mon conseil - il y a tellement de choses à faire Dans ce cas, le meilleur moyen de s’en tenir au savoir est de s’en tenir à de gros morceaux.

Étape 4: Bénéfice :)

37
Hamish Downer

J'ai été un utilisateur occasionnel de vim au cours des années (effectuant des tâches d'administration occasionnelles du système). Je viens tout juste de passer plus de temps à faire de la programmation. Je suggère de commencer avec gvim aussi. Il s'intègre bien à la plupart des environnements de système d'exploitation et (encore mieux), vous pouvez vous rabattre sur la souris quand vous le souhaitez :).

Pour commencer avec vim, exécutez vimtutor (fourni avec gVim) une ou deux fois (prend environ une heure). Je ne peux pas exagérer à quel point cela m'a été utile! En particulier les premières parties sur les différentes manières de se déplacer dans un document, et sur la manière dont les actions d'édition sont enregistrées avec des commandes de mouvement, etc.

Ensuite, commencez à faire des modifications mineures rapides avec lui (matériel de remplacement du bloc-notes) jusqu'à ce que vous soyez assez à l'aise pour faire des montages utiles lors d'un clip rapide. Ensuite, essayez de faire votre travail quotidien. Vous vous rendrez compte que la commande "répéter la dernière action" de la part d'autres éditeurs en un rien de temps!

26
Brian

Vous avez demandé de bons conseils pour vous aider à surmonter la courbe d'apprentissage de l'éditeur de texte vi. Plusieurs réponses précédentes suggèrent de ne pas utiliser d'autres éditeurs. Je pense que c'est un bon conseil. Passer à vi à partir d'un éditeur plus graphique nécessite un changement de mentalité. Cela nécessite de penser en termes de commandes plutôt que de changements visuels.

Je n'ai utilisé rien d'autre que vi pendant de nombreuses années et je pense que la seule façon d'être productif est de mémoriser les commandes que vous utilisez régulièrement. Pour ce faire, j'ai dressé une courte liste des commandes au clavier les plus courantes. J'ai groupé et codé les couleurs de ces commandes par fonction, c'est-à-dire Déplacement du curseur, édition, recherche , etc. J'ai pris soin de n'inclure que les plus utilisées commandes que je ne connaissais pas. L'idée est de créer une référence rapide qui soit également une aide à la mémorisation - et non de remplacer les écrans d'aide disponibles. Ensuite, j'ai imprimé cette liste et l'ai collée au mur derrière mon moniteur pour que je puisse la voir facilement. (Les feuilles de triche graphiques que vous avez mentionnées pourraient mieux fonctionner pour certains, mais constituent probablement une meilleure source de référence qu'un outil de mémorisation.)

Voici la clé. Alors que je devenais à l'aise avec l'une des commandes, j'ai dessiné une ligne à l'aide d'un crayon. Je pouvais encore le voir si j'en avais besoin, mais c'était pour moi symbolique de maîtriser cette commande. Cela m'a donné confiance et motivation, car je pouvais constater des progrès réguliers. Une fois que la plupart d’entre eux ont été rayés, je les ai supprimés et ajouté certaines des commandes les plus rarement utilisées. J'ai continué ce processus jusqu'à ce que je sois satisfait de ma maîtrise de vi. Je savais que j'avais atteint ce point lorsque j'ai réalisé que je n'avais barré aucune commande ni même regardé la liste depuis longtemps.

Il y a quelques années, j'avais besoin de travailler sur une plate-forme UNIX où vi était le seul éditeur disponible. J'ai acheté un petit livre de référence de poche sur vi, mais je ne l'ai presque pas utilisé. J'ai fini par faire des listes et les poster sur le mur comme je l'ai fait la première fois que j'ai utilisé vi. À la fin de la première semaine, j'étais très à l'aise même si cela faisait cinq ans que je n'avais plus utilisé vi.

19
TMarshall

Vous devriez commencer par vim (Vi IMproved) et surtout son interface graphique - gVim . L'interface graphique a des menus et sous Windows, vous pouvez utiliser les raccourcis copier/coller pour vous permettre de remplacer le Bloc-notes immédiatement. Et puisque les menus affichent les raccourcis (commandes vim), vous pouvez en apprendre beaucoup.

Une autre chose à faire dès le début est de configurer vi en fonction de vos besoins. Par exemple, vous pouvez transformer vim en un IDE Python . En faisant cela, vous n'aurez plus aucune excuse pour utiliser un autre éditeur, car vi vous offrira tout ce dont vous avez besoin.

11
Cristian Ciupitu

Pour moi, VI est un bon éditeur d’urgence, mais ce n’est pas quelque chose que je veux utiliser s’il existe une autre alternative. Je réalise que ce n'est pas pour tout le monde cependant, je ne dis pas que c'est horrible ou quoi que ce soit, je préfère juste personnellement une interface utilisateur découvrable.

Mais vous devez vraiment savoir VI si vous faites quelque chose d'important dans Linux!

Il suffit donc d'apprendre les bases: i = mode d'insertion esc = quitter le mode d'insertion: wq = enregistrer et quitter: q! = Ne pas enregistrer et quitter x = lorsque vous n'êtes pas en mode d'insertion, supprimez le caractère./= recherche

Cela vous permettra de traverser toute urgence de montage. Il n'y a rien que vous ne puissiez pas faire avec ces quelques commandes (et la navigation bien sûr). Le reste, vous pouvez "pointer" comme vous en avez besoin.

Conservez une référence ou un livre à portée de main - lorsque vous DEVEZ utiliser VI, vous ne pourrez probablement pas naviguer sur le Web - mais la page de manuel peut s’avérer utile.

11
Bill K

forcez-vous pas. le chemin pour maîtriser l'amour est.

11
jbarciela

supprimer toutes les autres applications de l'éditeur de texte.

Ensuite, vous devrez l'apprendre.

10
Bob Dizzle

Le moyen le plus simple de forcer vous-même peut-être simplement supprimer tous les autres éditeurs de votre machine. Débarrassez-vous de la tentation :)

9
Dana

Chaque fois que vous effectuez une tâche d'édition complexe, demandez-vous s'il existe un moyen plus efficace de le faire. La plupart du temps, lorsque vous pouvez décrire quelque chose en termes simples (comme "permuter des paragraphes de texte" ou "tout supprimer après le caractère X dans les lignes commentées"), vous pouvez le faire en quelques clics de touche dans vim.

Certaines fonctionnalités clés sont extrêmement utiles, et vous finirez par utiliser tout le temps. Ceux que j'aime le plus sont:

  • Sélection de bloc (Ctrl-V)
  • Enregistrement de macro (q)
  • Montage virtuel (: set ve = all)
  • Expressions régulières
  • Piping vers des programmes Unix externes
  • Mappages clés
  • Complétion automatique (C-p, C-x C-p, C-x C-f)
  • La combinaison opération + mouvement (c'est incroyablement puissant)

Demandez aux autres programmeurs quelles fonctionnalités ils trouvent les plus utiles et adoptez celles qui conviennent le mieux à votre cerveau. Voler les idées des autres personnes .vimrcs ( voici le mien )

9
Roberto Bonvallet

EDIT: J'ai créé ne carte mémoire installée sur le site de répétition en ligne flashcarddb.com , au cas où cela vous intéresserait ...

  1. Utilisez un programme de carte flash à répétition espacée tel que mnemosyne , supermemo , ou anki pour incorporer l’apprentissage et la conservation de nouvelles commandes dans votre routine quotidienne. Il ne suffit pas d’utiliser vim comme éditeur quotidien. Pour le maîtriser, vous devez stocker ces codes dans votre tête, en attendant le moment où ils constituent la solution idéale pour la tâche à accomplir.
  2. Maintenir un .vimrc avec des personnalisations
  3. Écrire ou éditer un plugin vim
8
P. Myer Nore

J'ai écrit un guide pour édition efficace avec Vim il y a quelque temps. Vous pouvez le trouver utile.

Je me suis un peu reculé pour me demander "pourquoi je veux apprendre cet éditeur? Qu'est-ce qui me fait penser que ce sera plus rapide ou meilleur que mon éditeur de texte actuel? Ensuite, découvrez les fonctionnalités qui rendront Vi (m) indispensable pour vous.

Par exemple, l'intégration des CTags de Vim est tout à fait indispensable pour moi. Je travaille avec une très grande base de code et la possibilité de passer d'une définition à une fonction ou à une définition de classe en une frappe de touche (quel que soit le fichier dans lequel elle se trouve) est une fonctionnalité absolument mortelle, sans laquelle je ne parviens pas à travailler.

Utilisez votre fichier .vimrc pour créer des macros qui automatisent les tâches courantes.

Votre éditeur-sélecteur de pilote automatique choisira l'éditeur qui effectuera le travail rapidement et avec le moins d'effort mental possible. Un peu de travail préparatoire assurera que l'éditeur est Vim. :-)

8
Jonathan

Deux choses qui vont grandement améliorer vos compétences en vi:

  1. Pratique, pratique, pratique
  2. Nethack
6
Mark Witczak

Ma suggestion: commencez petit. Commencez simplement par mémoriser un petit ensemble des commandes les plus utiles. Quand j'ai commencé vi, c’était mon top 10:

  • (Esc) pour revenir au mode commande (le plus important!)
  • a pour ajouter du texte après le curseur
  • A pour ajouter du texte à la fin de la ligne en cours
  • x pour supprimer 1 caractère
  • dd pour supprimer 1 ligne
  • R pour remplacer le texte (écraser)
  • tu dois défaire
  • : q! (Entrée) pour quitter sans sauvegarder
  • : w (Entrée) pour sauvegarder
  • ZZ pour sauvegarder et quitter

De nombreuses modifications de base peuvent être effectuées à l’aide de ces commandes seulement. Une fois que vous êtes à l'aise, le reste n'a pas l'air trop difficile.

BTW, je voudrais ajouter que je comptais sur vi pour mon éditeur de texte principal, mais maintenant seulement si je dois le faire. Dans mon cas, la productivité est meilleure lorsque j'utilise des outils comme Emacs ou Visual Studio (veuillez noter: "dans mon cas"). Essayez plusieurs outils et choisissez celui qui améliore le plus votre productivité. Bonne chance!

6
Paulus

Cela semble idiot, mais jouer à roguelike (comme Nethack ou Angband ) est un moyen amusant de se familiariser avec l’utilisation de h/j/k/l touches de navigation du curseur.

5
bk1e

Notez tous les raccourcis et fonctionnalités que vous utilisez dans votre éditeur actuel lorsque vous l'utilisez au travail. Ensuite, asseyez-vous le samedi matin et utilisez Google pour découvrir comment utiliser chacun des éléments de vi. Probablement mieux si vous utilisez une feuille (ou des feuilles) de papier pour cela.

Désactivez/supprimez maintenant les autres éditeurs au travail afin que vous ayez besoin de plus de temps pour les trouver et les réinstaller que pour regarder votre feuille de comparaison et le faire en vi - c'est-à-dire que vous n’avez pas le choix.

Enfin, publiez votre liste de raccourcis de croisement de votre ancien éditeur sur votre nouveau sur votre blog.

Bonne chance!

4
Guy

Ne pas utiliser X11?

$ sudu rm /usr/local/bin/emacs

Changez votre login Shell en vi?

Tout d’abord, forcez-vous à utiliser ed, puis vi vous semblera être un luxe?

Utilisez les combinaisons de touches vi dans bash?

Il suffit de commencer à utiliser vi tout le temps?

Il me semble qu'apprendre un éditeur n'est pas très différent d'apprendre une langue. L'immersion fonctionne mieux.

J'utilise vi pour des modifications très rapides ou lorsque je ne peux pas utiliser X11 pour une raison quelconque, mais je vis dans emacs. Les éditeurs vraiment puissants méritent de prendre le temps d'apprendre.

4
Jon Ericson

La principale raison pour laquelle j'utilise vi est ssh (ou PuTTY sous Windows): lorsque vous êtes connecté à un serveur Unix à distance, alors vi est toujours disponible. Et cela fonctionne avec le VT100 lorsque ni les touches du curseur, ni le retour arrière/suppression ne sont mappés.

Avoir aussi un livre comme Référence de l'éditeur de poche VI aide grandement.

3
Aaron Digulla

Je me souviens que lorsque j'ai commencé à apprendre emacs, c'était après que je sois déjà très à l'aise avec Vim et que j'étais dans le même bateau ou un bateau similaire à celui où vous étiez, où je savais comment faire beaucoup dans un autre éditeur. en utilisant emacs, c'était toujours terriblement lent.

Cependant, je pense que ce que vous devrez faire est d’absorber un peu de la douleur, et toujours, toujours, assurez-vous TOUJOURS que vous regardez la documentation pour faire quelque chose que vous savez vous pouvez faire dans votre éditeur précédent, par exemple en allant à la fin d'une ligne ou en sélectionnant une région de texte.

Vous pouvez également poser des questions si vous avez un expert vi local, ou si vous êtes comme notre entreprise, vous faites la promotion de la programmation en binôme. De cette façon, lorsque vous essayez de faire quelque chose qui devrait être facile, vous pouvez simplement demander à quelqu'un, il vous montrera comment, et si vous utilisez l'éditeur régulièrement pendant quelques semaines, vous ne devriez pas avoir à demander plus. puis quelques fois avant que cela ne devienne une seconde nature.

Si vous ne disposez pas de ressources locales, de nombreux livres/tutoriels/feuilles de référence en ligne devraient pouvoir répondre à la plupart de vos questions.

En fin de compte, apprendre Vi, c'est comme apprendre d'autres compétences, il n'y a pas de solution miracle, et vous devrez accepter que, pendant un moment, vous allez être moins productif que votre rédacteur actuel. Continuez simplement à vous dire: "D'autres personnes ont pu apprendre le vi, et je suis au moins aussi intelligente qu'elles" (c'est ce que je me dis quand même :))

3
ben.prew

Ma recommandation est de créer des programmes simples et de les écrire, de bout en bout, en utilisant VI.

Les chances sont, vous serez trop frustré au début par la courbe d'apprentissage pour vous forcer à les utiliser au travail ou dans n'importe quel environnement sensible au temps.

Je l'avais déjà fait pour me familiariser avec les environnements/éditeurs, et cela fonctionne plutôt bien.

Si vous rencontrez des difficultés pour écrire, je vous recommande de reprendre les projets que vous avez réalisés à l’école (ou tout ce que vous avez fait précédemment). Cette méthode a l'avantage supplémentaire de vous permettre de voir à quel point vous êtes devenu un meilleur développeur. :)

Edit: j'ai oublié de mentionner que vous devriez le faire entièrement depuis la console pour éviter toute tentation d'utiliser la souris!

3
TM.

gVIM a un très bon tutoriel (lien dans le groupe du menu Démarrer).

J'ai trouvé que travailler avec cela aidait à surmonter la bosse d'apprentissage initiale; puis passer de Visual Studio à ViEMU m'a aidé à perfectionner mes compétences en VI.

De plus, les screencasts sur http://vimcasts.org/ sont excellents!

3
David Laing

Vous voudrez peut-être commencer avec Cream. Cream se décrit comme "une configuration moderne" de vim. Fondamentalement, il s’agit d’une version spéciale de vim qui ressemble à n’importe quel autre éditeur de texte à toutes fins pratiques. Mais activez le "mode expert" et vous avez tout le pouvoir et le comportement de vim.

Vous pouvez donc commencer à utiliser Cream comme éditeur de texte standard, puis expérimenter avec le "mode expert" jusqu'à ce que vous soyez suffisamment à l'aise pour basculer complètement vers vim.

2
sids

Installez gVim sur toutes les plateformes que vous utilisez.

Ensuite, parcourez le vimtutor (:help vimtutor ou vimtutor sur la ligne de commande).

Regardez la conférence suivante et suivez ses conseils: 7 habitudes pour une édition de texte efficace 2.

Je dis que vous voulez vraiment commencer à l’utiliser pour tous vos montages. Si vous craignez une perte de productivité, prenez un week-end pour le pratiquer de manière solide (je l'avais déjà fait pour passer de dworak à Qwerty et ma productivité était suffisamment élevée lundi et je réussissais à la conserver après).

Cela en vaut la peine et vous ne regarderez plus en arrière!

2
user13060

Vous pouvez mettre la main sur l’un des claviers d’origine Happy Hacker (pas de touches fléchées) et placer votre souris (sans fil) hors de portée chaque fois que vous commencez l’édition.

2
Garth Gilmour

Il est facile d’écrire une grande liste de commandes/raccourcis, mais il est difficile de se souvenir de toutes sans la pratique.

Concentrez-vous sur une nouvelle commande à la fois. Quand cela devient automatique, disons après l’avoir utilisé pendant une semaine ou deux, ajoutez-en un autre à votre répertoire.

Vous allez parcourir un long chemin pour accomplir certaines choses à court terme - ce sont des opportunités évidentes pour de nouveaux raccourcis d'apprentissage.

Selon mon expérience, c’était plus facile lorsque j’essayais de ne pas en prendre trop à la fois.

2
Craig Hyatt

Ma suggestion numéro un: apprendre à taper vite, sans avoir à regarder le clavier.

Si vous ne pouvez pas toucher au type et que vous cherchez toujours le côlon, le hjkl ou:% s/foo/bar, oubliez-le. Taper peut être plus rapide que d'utiliser la souris, mais si ce n'est pas le cas pour vous, vi ne fonctionnera pas.

Mais combinez de bonnes compétences de frappe, ssh et screen et vi seront naturels.

2
Michael Cramer

ESC gg=G pour réindentir le code et :retab convertir des onglets en espaces ou des espaces en onglets est ce qui m’a accroché à vim. Donc, en réalité, vous n’avez pas besoin d’être forcé de l’utiliser, vous devez juste savoir quand cela peut vous aider à augmenter votre vitesse.

Passez par vimtutor.

Commencez à utiliser vim pour une édition simple, comme des fichiers de configuration ou HTML. Apprenez les commandes selon vos besoins.

Rechercher sur Google pour un bon .vimrc utilisé par quelqu'un qui utilise une chaîne d'outils qui ressemble à la vôtre. Activer la coloration syntaxique. Trouvez une belle palette de couleurs.

Apprenez des macros car Vim est ce qu'il y a de mieux pour les tâches automatisées et l'insertion d'extraits de code, comme le formatage de quelques mots en balise XML complexe ou la conversion d'un fichier CSV en tableau HTML.

2
Eduardo Marinho

Face au fait que cela va créer un coup immédiat de performance. Lors de l'apprentissage d'un nouvel outil, vous devez être capable de faire quelque chose que vous savez faire avec d'autres outils, de sorte que le problème ne soit pas votre problème. Après avoir utilisé le nouvel outil, il disparaîtra pendant un certain temps et vous ne vous concentrerez que sur le problème sous-jacent.

Avec quelque chose comme vim (comme d'autres l'ont déjà dit, vim est nettement supérieur à vi), il est important de relire et de parcourir la documentation périodiquement. L'interface est complètement introuvable sans elle. À chaque nouvelle lecture, vous verrez une fonction et dire "ah ah, cela aurait résolu le problème que j'essayais de résoudre la semaine dernière" et vous la classerons dans votre cerveau. Les solutions liées aux problèmes du monde réel que vous avez rencontrés sont beaucoup plus faciles à retenir que des raccourcis aléatoires.

En fin de compte, vous pouvez utiliser vim avec un assez petit sous-ensemble de ses fonctionnalités. Ne soyez donc pas submergé par toutes les cloches et sifflets. Pensez à toutes les fonctionnalités de Word. 99% des personnes les utilisent-elles?

2
Matt Price

Quand j'étais beaucoup plus jeune (onze ans), ma famille a déménagé en Allemagne pendant quelques années. J'ai pu apprendre la langue par immersion - je n'avais tout simplement pas d'autre choix que de parler la langue (même si, si j'étais dans une situation difficile, je pourrais trouver un anglophone).

Ma suggestion est que vous fassiez de même - à moins que vous ne vous trouviez dans une situation absolument désespérée (par exemple, "ok, je viens de supprimer/etc/passwd et que vous deviez rétablir la racine"), prenez la décision consciente de faire de votre mieux avec vi. En fait, il ne faut pas longtemps pour apprendre les bases, si vous le souhaitez.

Comme d'autres l'ont suggéré,

vim-tutor

peut être un très bon point de départ, tout comme cette image .

1
cjmac

Utilisez la méthode post-it note :-)

Lorsque vous utilisez gvim, laissez-vous utiliser les menus. Lisez un livre/tutoriel sur vim pour connaître les bases. (mode insertion et commande)

Sélectionnez des fonctions vraiment intéressantes dont vous pensez avoir besoin et écrivez-les sur des post-it, puis collez-les sur la partie inférieure de votre moniteur.

Un bon début est probablement i, a, o, gg, G,: 10,/quelque chose

et certains couper et coller comme yy, dd, p

et juste compléter avec v, v (le mode visuel) + couper et coller

Puis, lorsque vous les connaissez, remplacez-les post-it par un nouveau doté d'une fonction encore plus froide, et répétez jusqu'à ce que vous soyez heureux.

/ Johan

1
Johan

Comment se forcer? Mon conseil est de travailler dans un environnement de travail où vous devez gérer 10 boîtes Unix en effectuant des opérations de telnet/putty depuis des fenêtres. Vous vous rendrez vite compte que la seule façon d’éditer efficacement du texte sur plusieurs variantes de * nix est d’utiliser un éditeur standard fourni avec presque toutes les distributions que je connais. De plus, lorsque X11 ne démarre pas avec une nouvelle installation, vi est votre seul ami :)

1
Excalibur2000

J'ai appris vim/vi il y a plus de dix ans, alors que je faisais mes maîtres. À l'époque, les seules machines auxquelles j'ai accès sont les stations Sun Sparc (Sparc 20, je pense). Et vi est la seule chose qui s'y trouve. Donc, une chose que vous pouvez faire pour vous "forcer" est de désinstaller tout autre éditeur que vous avez!

1
lang2

Personnellement, je devais m'assurer que je pouvais utiliser les raccourcis clavier Vim (ou au moins, assez proches) dans plusieurs applications. Devoir changer complètement la façon dont j'ai édité le texte chaque fois que j'ai changé d'éditeur, il était trop difficile d'obtenir le style d'édition Vim validé pour la mémoire musculaire.

Dans mon cas, Viemu + vimperator a fait l'affaire.

1
tomasr

Je n'ai appris vi que lorsque j'ai commencé à travailler pour un fournisseur de services Internet, où les scripts d'édition de domaines ne s'ouvraient que sur un terminal. Je n'avais d'autre choix que de l'apprendre, mais je ne l'ai jamais regretté.

En bref, mettez-vous dans une situation où vous n'avez d'autre choix que de l'apprendre.

0
Nathan Fellman

Je commencerais par argdo , et une fois que vous tombez amoureux de ça, le reste est facile ...

0
Kearns

Passez quelques heures sur le site des amoureux de vi http://nereida.deioc.ull.es/html/vilovers.html - plein de tutoriels, de liens, etc. avec des fans enthousiastes de vi.

0
DarenW

Une chose que j’ai trouvée vraiment déroutante dans vi moderne (vim?) Est le mode d’entrée qui permet certaines fonctionnalités du mode commande, mais pas toutes. Je me sens beaucoup plus à l'aise lorsque le mode de saisie est totalement bousculé en "écrasement uniquement, aucun mouvement de curseur possible", comme l'ancien système Solaris vi. Le vrai vi nécessite que vous restiez en mode commande la plupart du temps.

Cela étant dit, il n’est pas nécessaire d’apprendre à connaître vi de nos jours: emacs est tout aussi omniprésent. :)

0
Arkadiy

Attendez d'avoir à résoudre un problème étrange et génial dans un environnement réel où tout ce que vous pouvez faire est d'accéder à la ligne de commande. Vous pourriez ne pas aimer VI, mais cela vous fera gagner beaucoup de temps et vous apprendrez des tas d’astuces pour parcourir des fichiers (journaux) volumineux.

0
Andrew Harmel-Law

Bien que je sois un grand fan de vi en général, et de vim en particulier, il existe de nombreux éditeurs puissants, et vous ne devriez pas avoir besoin d'utiliser vi, ou il s'agit en quelque sorte d'un éditeur absolument parfait, car ce n'est pas le cas.

Si vous devez vous forcer à utiliser vi, je crains que vous ne vous sentiez pas productif si vous l'utilisez. Cependant, si vous insistez pour persister, je m'assurerais probablement que j'ai utilisé vi pour chaque tâche d'édition. Chaque fois que je dois faire quelque chose et que je ne suis pas du tout le meilleur moyen de le faire, je cherche le moyen optimal (en termes de frappe minimale) pour le faire dans vi après je l'ai fait. c'est une manière normale non optimale. Je ferais alors un post-it avec cette petite astuce (ou peut-être juste un fichier texte) afin que je m'en souvienne pour la prochaine fois.

Au fil du temps, votre productivité avec vi augmentera considérablement.

0
Brian Mitchell

J'ai appris vi de l'excellent livre O'Reilly "Learning the vi editor" .

0
Phillip Wells

Pourquoi est-ce que je n'utilise pas mon propre moyen de me forcer sans frottement? :-)

Ce que je fais est simple: j'essaie de créer des messages avec git commit avec vim (éditeur par défaut lorsque vous ne spécifiez pas de message sur la ligne de commande).

Bien sûr, un message de validation est si court qu'il aide à peine. Mais lors de la réédition d'un message avec git commit --amend c'est plus utile.

0
webmat

Imprimez l'une des nombreuses feuilles de triche Vi/Vim que vous pouvez trouver sur Internet et forcez-vous à vous y tenir pendant quelques semaines.

Une fois que vous avez appris quelques commandes de base, vous pouvez être assez efficace. À partir de là, continuez à vous connecter et apprenez une nouvelle commande de temps en temps. Vous ne pouvez en aucune façon apprendre TOUTES les commandes vi. Je crois qu'il y a plus de commandes vi que d'atomes dans l'univers !! :)

0
Utah_Dave

Comme je le faisais, il fallait au départ prendre quelques minutes pour passer en revue les éléments les plus élémentaires - déplacer le curseur, rechercher en avant et en arrière, passer aux mots/phrases/paragraphes précédents et précédents, etc. Insérer, ajouter. Tout ce que vous pouvez tenir dans votre tête. Ensuite, lorsque vous avez quelque chose à faire qui ne doit pas être fait dans les 15 prochaines secondes, utilisez-le vous-même.

Lorsque vous êtes assez à l'aise avec les bases, apprenez lentement les commandes les plus avancées - en particulier celles qui exploitent votre apprentissage précédent (comme remplacer les 3 mots suivants ou supprimer la prochaine cible de recherche).

J'aime utiliser VI, une fois que j'ai appris comment. Les commandes avancées sont bien plus puissantes que ce que la plupart des éditeurs d’interface graphique semblent offrir, et le fait qu’elle soit omniprésente et basée sur du texte, et donc disponible sur ssh, en est d’autant meilleur.

0
randychilders

Fais ce que j'ai fait. Utilisez-le pour tout et sortez dans #vim sur freenode.

0
Jeremy Cantrell

Google est ton ami. Gardez une fenêtre ou un onglet à portée de la main et, si vous avez quelque chose à faire plusieurs fois, dites code de retrait ou recherche avec une expression régulière, recherchez-la. Les meilleurs sites de conseils deviendront familiers, signet et peut-être imprimer une feuille de triche.

0
sammyo

J'ai commencé à utiliser VI car c'est l'éditeur par défaut de presque tous les systèmes d'exploitation, à l'exception de Windows. Là encore, je ne fais pas beaucoup de codage sous Windows, alors cela aide.

Si vous voulez vous forcer sur un système * NIX/OSX, supprimez les autres éditeurs ou aliasez-les. Pour le reste, c'est à vous de voir. Chaque fois que vous n'utilisez pas VI pour éditer un fichier, vous n'obtiendrez pas de cookie.

0
Kristian

Le meilleur moyen? Configurez votre terminal pour utiliser les raccourcis clavier vi.

0
chiggsy

supprimez notepad.exe et créez un raccourci vers vim appelé notepad à la place :)

ou faites tout votre codage via ssh ou sur une machine sans interface graphique;)

0
shyam

J'ai essayé de garder un petit aide-mémoire ou des notes collantes de commandes vi courantes. Je fais la même chose pour un IDE j'utilise. Je trouve des notes collantes de raccourcis clavier ou de commandes sur mon (mes) moniteur (s), cela m'aide à les apprendre. Une fois que j'ai utilisé le raccourci suffisant et pense que je m'en souviens bien, je vais enlever le pense-bête.

0
Bob Wintemberg

reliez chaque éditeur de terminal de votre système à vim et reliez chaque éditeur graphique de votre système à un script qui ouvre une nouvelle fenêtre de terminal avec vim en cours d'exécution.

0
Steve Losh

Je l'ai utilisé pour éditer des fichiers sur le serveur Web qui était linux au lieu d'utiliser FTP. C'était il y a 9 ans et je maîtrise depuis ces compétences.

L'autre chose est de trouver quelque chose de génial que vous pouvez faire dans VI, tel que la recherche globale et son remplacement ou quelque chose d'encore plus puissant, et d'utiliser VI chaque fois que vous en avez besoin.

0
Brian G

Lorsque vous avez besoin de rechercher rapidement quelque chose, le faire sur une seule page peut vous aider.

0
webmat

Si vous vous forcez à l'utiliser pendant quelques jours, vous verrez que les commandes deviennent rapidement une seconde nature. Si vous utilisez un système posix, je vous recommande de commencer par le nvi sous licence BSD, un clone vi classique 1: 1, puis de passer à vim. Si vous commencez avec vim, il est probable que vous n'utilisiez qu'un sous-ensemble des commandes d'édition car son mode INSERT est très similaire à celui des éditeurs à interface graphique.

0
jbcreix

euh, c’est plus une question de physcologie que de question de programmation, mais la meilleure façon dont j’ai pu faire des choses que je ne voulais vraiment pas faire, c’est de le faire, et d’arrêter d’essayer de trouver des moyens de me motiver pour le faire.

Pensez-y simplement comme se brosser les dents Devez-vous vous motiver pour le faire? Non, tu le fais juste.

0
Craig H

Passez dix ans à poster sur Usenet depuis une machine où seuls vi et emacs étaient disponibles (et où emacs avait un long temps de démarrage fastidieux lorsqu’il était appelé depuis "rn").

C'est comme ça que je l'ai appris.

Mais pour une approche plus rapide, tout ce que je peux vous recommander, c’est que vous vous engagiez simplement à l’apprentissage et que vous passiez quelques heures à travailler sur du code source. Installez vim si vous ne l'avez pas déjà - il a des fonctionnalités de coloration syntaxique merveilleuses.

Cela en vaut la peine. Je sais que je peux utiliser n'importe quelle machine Unix, n'importe où dans le monde occidental, peut-être même via une connexion lente ou une machine sans interface graphique, et être pleinement productif en quelques minutes.

0
Matt Hucke

J'ai un VI sous Windows, la version que j'utilise est listée ci-dessous. Si je suis dans une fenêtre de la console, le défaut est toujours VI, alors quel que soit le système d'exploitation sur lequel je tourne, je sais que je peux éditer le fichier. Inversement, si je suis en mode interface utilisateur, j'utilise Notepad ++.

NT VI - Version 0.23 Développé par: Tony Andrews Basé sur un programme de: Tim Thompson

0
titanae

J'ai été obligé d'apprendre Vim pour mon premier emploi en programmation à l'âge de 16 ans (le patron ne nous laissait pas utiliser autre chose), mais je n'avais fait aucun progrès réel avant d'avoir lu Vim Book de Steve Oualline = - il est fortement recommandé comme point de départ si vous voulez être sérieux avec vim.

Vim prend en fait plus de temps à maîtriser que certains langages de programmation (les fonctionnalités sont aussi complexes que ). Vouloir "maîtriser" Vim en imprimant des feuilles de triche serait comme essayer de maîtriser Haskell en lisant quelques articles de blog. Préparez-vous à investir du temps et vous serez bien récompensé.

0
too much php

Je me suis fabriqué un aide-mémoire pratique d'une page et je l'ai utilisé pour apprendre toutes les fonctionnalités non essentielles. Cependant, la pratique est le seul moyen de maîtriser quoi que ce soit.

vi est agréable car il est installé sur tous les ordinateurs de type UNIX, Mac OS X, Solaris et Linux. Trouver une vieille boîte de decstation sur eBay? Il a vi. Que diriez-vous de Sun OS 4? vi encore.

0
Norman Franke

Jouez beaucoup de nethack. C'est ce que j'ai fait quand j'étais au collège et j'ai appris plus tard que le mouvement du curseur était le même. Cependant, à ce stade, vous devrez peut-être modifier le paramètre pour utiliser le clavier en style vi.

0
oj