Question

Il y a un bon moment, j'ai lu un article du créateur de viemu , dissipant beaucoup d'idées fausses sur vi, et expliquant pourquoi c'est une bonne idée (et pourquoi c'est très populaire depuis plus de 30 ans). Le même gars a également une grande série de feuilles de triche graphiques qui expliquent les bases en quelques étapes temps.

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 at-il de bons conseils pour aider à surmonter la courbe d'apprentissage? Cela peut être des astuces directes, un autre tutoriel ou un article, peu importe.

Modifier: Notez que je connais les vim / gVim , Cream et MacVim (etc.) variantes 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 ceux qui maîtrisent Vim.

Était-ce utile?

La solution

Tout d’abord, vous voudrez peut-être prendre Vim; il a une fonctionnalité très supérieure définie 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 vous lancer dans 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 rester avec elle.

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 faits dans ma carrière de programmeur.

Autres conseils

La première chose à faire est de poser un morceau de papier ou un livre sur les touches fléchées et les 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, pratiquez simplement la pratique.

modifier La raison pour éviter les touches fléchées 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 d’embrasser réellement la nature modale, qui est très puissante une fois maîtrisée.

Étape 0: apprendre à taper 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 saisie tactile améliorera votre programmation (demander Steve Yegge ) en rendant l'esprit de surveiller le lien sans frottement . Il y a un lot de software qui peut vous aider à améliorer votre frappe.

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

Étape 2: utilisez vim partout. Voir cette question des astuces et des liens pour utiliser les raccourcis vim et vi à la commande ligne, à partir de votre navigateur Web, pour composer des courriels, dans votre IDE ... Vous 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é le surface avec vimtutor. Vous pouvez regarder cette vidéo ou lisez cet article (à propos de les "Sept habitudes d’édition de texte efficace". Vous pouvez lire sur astuces et astuces sur StackOverflow . Vous pouvez parcourir vimtips . Apprendre un peu souvent serait mon conseil - il y a tellement de choses là-bas que s'en tenir à des morceaux de la taille d'une bouchée sera le meilleur moyen de faire la connaissance bâton.

Étape 4: Bénéfice:)

J'ai été un utilisateur occasionnel de vim au cours des années (effectuant des tâches d'administration occasionnelles de sys). 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 lorsque vous avez besoin de:).

Pour démarrer avec vim, parcourez 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 façons de se déplacer dans un document, et sur la manière dont les actions de montage sont enregistrées avec des commandes de mouvement, etc.

Ensuite, commencez à faire des modifications mineures rapides avec lui (éléments de remplacement du bloc-notes) jusqu'à ce que vous soyez suffisamment à l'aise pour effectuer des montages utiles lors d'un clip rapide. Ensuite, essayez de faire votre travail quotidien. Vous vous retrouverez en train de regretter l'action "Répéter la dernière action". commande dans d'autres éditeurs en un rien de temps!

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é 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 d'inclure uniquement les commandes les plus couramment utilisées 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 & # 8211; ne pas 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 tracé un trait à 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 ne l'utilisais plus.

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 solution. Je réalise que ce n'est pas pour tout le monde, 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 sous Linux!

Alors venez apprendre les bases: i = mode insertion esc = quitter le mode insertion : wq = enregistrer et quitter : q! = ne pas sauvegarder et quitter x = lorsque vous n'êtes pas en mode insertion, supprimez le caractère. / = recherche

Cela vous évitera des problèmes 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 sur". comme vous en avez besoin.

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

forcez-vous pas. le chemin de la maîtrise de l'amour est.

Vous devriez commencer par vim (Vi IMproved) et en particulier 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.

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

Ensuite, vous devrez l'apprendre.

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

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 décrivez quelque chose en termes simples (comme "échanger 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 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 de clés
  • Complétion automatique (C-p, C-x C-p, C-x C-f)
  • La combinaison opération + mouvement (étonnamment puissante)

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

EDIT: j'ai créé une carte mémoire définie sur le site de répétition espacé en ligne flashcarddb.com , au cas où vous seriez intéressé ...

  1. Utilisez un programme de carte flash à répétition espacée tel que mnemosyne , supermemo , ou anki à incorporer apprendre et retenir 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 fichier .vimrc avec des personnalisations
  3. Écrire ou modifier un plug-in vim

J'ai écrit un guide pour l'édition efficace avec Vim il y a quelque temps. Vous le trouverez peut-être 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? & Quot; Apprenez ensuite 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 le plus rapidement et avec le moins d'effort mental possible. Un peu de travail préparatoire assurera que l'éditeur est Vim. : -)

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

  1. Pratiquez, pratiquez, pratiquez
  2. Nethack

Mon conseil: 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 supprimer 1 ligne
  • R pour remplacer le texte (écraser)
  • u pour annuler
  • : q! (Entrée) pour quitter sans enregistrer
  • : w (Entrée) pour enregistrer
  • ZZ pour enregistrer 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, j'aimerais ajouter que je m'appuyais 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 tels qu'Emacs ou Visual Studio (veuillez noter: "dans mon cas"). Essayez plusieurs outils et choisissez celui qui améliore le plus votre productivité. Bonne chance!

Cela semble idiot, mais de jouer à des roguelike jeux (tels que Nethack ou Angband ) est Une façon amusante de vous familiariser avec l’utilisation des touches h / j / k / l pour la navigation par curseur.

Notez tous les raccourcis et toutes les 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 les autres éditeurs au travail pour 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!

Ne pas utiliser X11 ?

$ sudu rm /usr/local/bin/emacs

Modifiez votre shell de connexion en vi ?

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

Utilisez les raccourcis vi dans bash ?

.

Commencez-vous à utiliser vi à tout moment?

Il me semble que l'apprentissage d'un éditeur n'est pas très différent de l'apprentissage d'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 les plus puissants méritent de prendre le temps d’apprendre.

Ma recommandation est de créer des programmes simples et de les écrire, de bout en bout, à l'aide de VI.

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

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

Si vous rencontrez des problèmes 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. :)

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

Je me souviens que lorsque j'ai commencé à apprendre emacs, c'était déjà très à l'aise avec Vim, et j'étais dans le même bateau ou un bateau similaire à celui que vous étiez, où je savais comment faire beaucoup dans un autre éditeur, alors quand j'ai commencé à utiliser 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 consultez la documentation pour faire quelque chose que vous connaissez vous pouvez le faire dans votre éditeur précédent, par exemple, aller à la fin d’une ligne ou sélectionner une région de texte.

Si vous avez un expert vi local, vous pouvez également poser des questions ou si vous êtes comme notre entreprise, vous faites la promotion de la programmation en binôme. Ainsi, 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 / fiches de référence en ligne devraient pouvoir répondre à la plupart de vos questions.

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

La principale raison de mon utilisation de vi est ssh (ou Putty sous Windows): lorsque vous êtes connecté à distance à un serveur Unix, puis vi est toujours disponible. Et cela fonctionne avec le VT100 lorsque ni les touches du curseur, ni le retour arrière / l'effacement ne sont mappés.

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

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 même, les screencasts sur http://vimcasts.org/ sont excellents!

Vous pouvez mettre la main sur l'un des claviers Happy Hacker d'origine (sans les touches de direction) et placer votre souris (sans fil) hors de portée à chaque fois que vous commencez à éditer.

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.

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

Si vous ne pouvez pas toucher au type et si 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 votre cas, vi ne fonctionnera pas.

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

Faites face au fait que cela créera un impact immédiat sur les performances. 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 un moment 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 largement 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 vous direz "ah ah, cela aurait résolu le problème que j'essayais de résoudre la semaine dernière" et je la classerais 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 difficultés. Pensez à toutes les fonctionnalités de Word: 99% des utilisateurs les utilisent-elles?

ESC gg = G pour réindentir le code et : retab pour convertir des onglets en espaces ou des espaces en onglets, voilà ce qui m'a relié à 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.

Parcourez vimtutor .

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

Recherchez sur Google un bon fichier .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 les macros car Vim est ce qu'il y a de mieux pour les tâches automatisées et l'insertion de fragments, comme le formatage de quelques mots en balise XML complexe ou la conversion d'un fichier CSV en tableau HTML.

Vous voudrez peut-être commencer avec Cream. Cream se décrit comme "une configuration moderne". de vim. En gros, c’est 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.

Installez gVim sur toutes les plateformes que vous utilisez.

Exécutez ensuite le vimtutor (: help vimtutor ou vimtutor en ligne de commande).

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

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 (j’avais déjà fait cela pour passer de dworak à Qwerty et ma productivité était suffisamment élevée lundi et j’ai réussi à la conserver après.).

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

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 de Vim validé pour la mémoire musculaire.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top