Il y a longtemps, j'ai lu un article du créateur de viemu , clarifiant beaucoup d'idées fausses sur vi, et expliquant pourquoi c'est une bonne idée (et pourquoi il a été très populaire au cours des 30 dernières années +). Le même gars a également un 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 réussi à me forcer à apprendre vi en tant que mon éditeur principal, la courbe d'apprentissage est tout simplement trop élevée. Quand je me mets au travail, une productivité acceptable mais immédiate (en utilisant mon éditeur actuel) a jusqu'à présent gagné une productivité énorme plus loin sur la ligne (en utilisant vi).
Quelqu'un a-t-il de bons conseils pour franchir la courbe d'apprentissage? Il peut s'agir de conseils simples, d'un autre didacticiel 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 me référer à 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 ne reviens pas :-)
Bonne chance à tous dans leur maîtrise de Vim.
la source
Réponses:
Tout d'abord, vous voudrez peut-être prendre Vim; il a un ensemble de fonctionnalités largement 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 toucher à la productivité (sans vous faire licencier), je suggère de prendre un projet de week-end dans le seul but d'apprendre l'éditeur. Gardez sa documentation ouverte pendant que vous travaillez et soyez suffisamment discipliné pour ne pas vous décourager. Au fur et à mesure que vous en apprendrez plus, devenez efficace et commencez à 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 faits dans ma carrière de programmeur.
la source
La première chose que je ferais est de poser un morceau de papier ou un livre sur vos touches fléchées et vos touches ins / home / end / pgup / down. Ceux-ci ne sont pas nécessaires dans Vi.
Ensuite, je m'habituerais à appuyer sur Ctrl + [chaque fois que vous êtes invité à appuyer sur Échap. C'est beaucoup plus rapide et vous n'aurez pas besoin de retirer vos mains du clavier.
Ensuite, je regardais 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, il suffit de pratiquer la pratique de la pratique.
edit La raison d'é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 vraiment la nature modale, qui est très puissante une fois maîtrisée.
la source
Étape 0: apprenez à toucher le type. Sérieusement - si vos doigts ne savent pas où se trouvent les clés, alors vim va être pénible. Et même si vous rejetez vim, la saisie tactile améliorera votre programmation (demandez à Steve Yegge ) en faisant en sorte de surveiller la friction des liens. Il y a un grand nombre de logiciels qui peuvent vous aider à améliorer votre frappe.
Étape 1: utilisez vimtutor pour commencer. C'est dans gvim (sous le menu d'aide je pense) ou vous pouvez simplement taper 'vimtutor' sur la ligne de commande. Cela prendra 30 à 45 minutes de votre temps, puis vos doigts connaîtront les bases de vi / vim et vous devriez pouvoir modifier des fichiers sans vouloir lancer votre clavier par la fenêtre.
Étape 2: utilisez vim partout. Consultez cette question pour obtenir des conseils et des liens sur l'utilisation des raccourcis clavier vim et vi sur la ligne de commande, depuis votre navigateur Web, pour composer des 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 n'aurez gratté la surface qu'avec vimtutor. Vous pouvez regarder cette vidéo ou lire cet article (à la fois sur les "Sept habitudes de modification efficace de texte". Vous pouvez lire des trucs et astuces sur StackOverflow . Vous pouvez parcourir les vimtips . En savoir un peu souvent serait mon conseil - il y a tellement là-bas que coller à des morceaux de la taille d'une bouchée sera le meilleur moyen de faire adhérer les connaissances.
Étape 4: Profit :)
la source
J'ai été un utilisateur de Vim de temps à autre au fil des ans (faisant le travail d'administration sys occasionnel). J'ai récemment commencé à consacrer plus de temps à mon travail de programmation. Je suggère également de commencer par gvim. Il s'intègre bien avec la plupart des environnements de système d'exploitation et (encore mieux), vous pouvez vous rabattre sur la souris lorsque vous en avez besoin :).
Pour commencer avec vim, exécutez le vimtutor (fourni avec gVim) une ou deux fois (prend environ une heure). Je ne peux pas exagérer à quel point cela a été utile pour moi! Surtout les premières parties sur les différentes façons de se déplacer dans un document, et comment les actions d'édition sont enregistrées avec des commandes de mouvement, etc., etc. Après cela, les choses seront BEAUCOUP plus claires.
Ensuite, commencez à faire des modifications mineures rapides avec elle (trucs de remplacement de bloc-notes) 'jusqu'à ce que vous soyez assez à l'aise pour effectuer des modifications utiles à un clip rapide. Ensuite, essayez d'y faire votre travail quotidien. Vous vous retrouverez à vouloir la commande "répéter la dernière action" dans d'autres éditeurs en un rien de temps!
la source
Vous avez demandé de bons conseils pour franchir la courbe d'apprentissage sur l'éditeur de texte vi. La plupart des 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 une réflexion en termes de commandes, plutôt que des changements visuels.
Je n'ai utilisé que vi pendant de nombreuses années et je crois 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 fait une courte liste des commandes clavier les plus courantes. J'ai regroupé et codé par couleur ces commandes par fonction, c'est-à-dire déplacement du curseur, modification, recherche , etc. J'ai pris soin de n'inclure que 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 est également une aide à la mémorisation - pas de remplacer les écrans d'aide disponibles. Ensuite, j'ai imprimé cette liste et l'ai collée au mur derrière mon moniteur afin que je puisse la voir facilement. (Les feuilles de triche graphiques que vous avez mentionnées pourraient fonctionner mieux pour certains, mais sont probablement une meilleure source de référence qu'un outil de mémorisation.)
Voici la clé. Comme je me suis familiarisé avec l'une des commandes, j'ai tracé une ligne à l'aide d'un crayon. Je pouvais encore le voir si j'en avais besoin, mais c'était symbolique pour moi que j'avais maîtrisé cette commande. Cela m'a donné confiance et motivation car je pouvais voir des progrès réguliers. Une fois la plupart d'entre elles barrées, je les ai supprimées et j'ai 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'étais arrivé à ce point quand je me suis rendu compte que je n'avais pas rayé de commandes ou 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 l'ai à peine utilisé. J'ai fini par faire des listes et les afficher 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 pas utilisé vi.
la source
Pour moi, VI est un bon éditeur d'urgence, mais ce n'est pas quelque chose que je veux utiliser s'il y a une autre alternative disponible. Je me rends compte 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 personnellement une interface utilisateur découvrable.
Mais vous devez vraiment connaître VI si vous faites quelque chose d'important sous Linux!
Il suffit donc d'apprendre les bases: i = insérer le mode esc = quitter le mode insérer: wq = enregistrer et quitter: q! = Ne pas enregistrer et quitter x = lorsqu'il n'est pas en mode insertion, supprimez le caractère. / = recherche
Cela vous aidera à traverser toute urgence d'édition. 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 "Tack on" selon vos besoins.
Gardez cependant une référence ou un livre à disposition - lorsque vous DEVEZ utiliser VI, vous ne pourrez probablement pas naviguer sur le Web - mais la page de manuel peut être quelque peu utile.
la source
forcez-vous pas. le chemin vers la maîtrise de l'amour est.
la source
Vous devriez commencer avec vim (Vi IMproved) et surtout son interface graphique - gVim . L'interface graphique a des menus et sur Windows, vous pouvez utiliser les raccourcis copier, couper et coller, vous pouvez donc remplacer le Bloc-notes immédiatement. Et puisque les menus affichent les raccourcis (commandes vim), vous pouvez en apprendre beaucoup.
Une autre chose que vous devez faire depuis le début est de configurer vi selon vos besoins. Par exemple, vous pouvez transformer vim en un IDE Python . En faisant cela, vous n'aurez aucune excuse pour utiliser un autre éditeur, car vi vous offrira tout ce dont vous avez besoin.
la source
supprimez toutes les autres applications de l'éditeur de texte.
Ensuite, vous devrez l'apprendre.
la source
Le moyen le plus simple de vous forcer pourrait être simplement de supprimer tous les autres éditeurs de votre machine. Débarrassez-vous de la tentation :)
la source
Chaque fois que vous effectuez une tâche d'édition complexe, continuez à vous demander s'il existe un moyen plus efficace de le faire. La plupart du temps, lorsque c'est quelque chose que vous pouvez décrire en termes simples (comme "échanger des paragraphes de texte" ou "supprimer tout après le caractère X dans les lignes commentées"), c'est quelque chose que vous pouvez faire en quelques touches dans vim.
Certaines fonctionnalités clés sont extrêmement utiles et vous cesserez de les utiliser tout le temps. Ceux que j'aime le plus sont:
Demandez aux autres programmeurs quelles fonctionnalités ils trouvent les plus utiles et adoptez celles qui correspondent le mieux à votre cerveau. Voler des idées aux autres
.vimrc
( voici les miennes )la source
EDIT: J'ai créé une carte flash sur le site de répétition espacée en ligne flashcarddb.com , au cas où vous seriez intéressé ...
la source
J'ai écrit un guide pour une édition efficace avec Vim quelque temps. Cela peut vous être utile.
Je prendrais un peu de recul et me demanderais "pourquoi est-ce que je veux apprendre cet éditeur? Qu'est-ce qui me fait penser qu'il sera plus rapide ou meilleur que mon éditeur de texte actuel?" Découvrez ensuite les fonctionnalités qui vous rendront Vi (m) indispensable.
Par exemple, l'intégration CTags de Vim est complètement indispensable pour moi. Je travaille avec une base de code très, très grande, et la possibilité de passer à une définition de fonction ou de classe en une seule touche (quel que soit le fichier dans lequel il se trouve) est une fonctionnalité absolument meurtrière, sans laquelle j'ai du mal à 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 fera le travail le plus rapidement et avec le moins d'effort mental. Un petit travail de préparation assurera que l'éditeur est Vim. :-)
la source
Deux choses qui amélioreront considérablement vos compétences vi:
la source
Ma suggestion: commencez petit. Commencez simplement par mémoriser un petit ensemble de commandes les plus utiles. Quand j'ai commencé vi, c'était mon top 10:
De nombreuses modifications de base peuvent être effectuées en utilisant uniquement ces commandes. Une fois à l'aise, le reste ne semble pas trop difficile.
BTW, je voudrais ajouter que je comptais sur vi pour mon éditeur de texte principal, mais maintenant seulement si je le dois. 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!
la source
Cela peut paraître idiot, mais jouer à des jeux roguelike (comme Nethack ou Angband ) est une façon amusante de se familiariser avec l'utilisation des touches
h
/j
/k
/l
pour la navigation avec le curseur.la source
Notez tous les raccourcis et fonctionnalités que vous utilisez dans votre éditeur actuel pendant que vous l'utilisez au travail. Ensuite, asseyez-vous samedi matin et utilisez Google et le débordement de pile pour savoir comment faire chacun de ceux de vi. Probablement mieux si vous utilisez une ou plusieurs feuilles de papier pour cela.
Désactivez / supprimez maintenant les autres éditeurs au travail afin que cela vous prenne plus de temps pour les trouver et les réinstaller que de regarder votre feuille de comparaison et de le faire dans vi - c'est-à-dire que vous n'avez pas le choix.
Enfin, publiez votre liste de raccourcis croisés de votre ancien éditeur vers le nouveau sur votre blog.
Bonne chance!
la source
N'utilisez pas X11 ?
Changez votre shell de connexion en vi ?
D'abord, forcez-vous à utiliser ed , puis vi vous semblera un luxe?
Utilisez les raccourcis clavier vi dans bash ?
Commencez simplement à utiliser vi tout le temps?
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 vraiment puissants méritent de prendre le temps d'apprendre.
la source
Ma recommandation est de trouver des programmes simples et de les écrire, du début à la fin, en utilisant VI.
Il y a de fortes chances que vous soyez trop frustré au début 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 trouver des choses à écrire, je vous recommande de refaire les projets que vous avez faits à l'école (ou toute autre chose que vous avez faite 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: oublié de mentionner que vous devez le faire entièrement depuis la console pour éviter toute tentation d'utiliser la souris!
la source
Je me souviens quand j'ai commencé à apprendre emacs, c'était après que j'étais déjà très à l'aise avec Vim, et j'étais dans le même bateau ou un bateau similaire que vous étiez, où je savais comment faire beaucoup de choses dans un autre éditeur, alors j'ai commencé en utilisant emacs, c'était toujours douloureusement lent.
Cependant, je pense que ce que vous aurez à faire, c'est d'absorber un peu la douleur, et toujours, toujours, assurez-vous de toujours consulter la documentation pour faire quelque chose que vous savez vous pouvez faire dans votre éditeur précédent, comme comme se déplacer à la fin d'une ligne ou sélectionner une région de texte.
Cela peut également être utile si vous avez un expert local en main pour vous poser des questions, ou si vous êtes comme notre entreprise, vous faites la promotion de la programmation par paires. 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 régulièrement l'éditeur pendant quelques semaines, vous ne devriez pas avoir à demander plus puis quelques fois avant qu'il ne devienne une seconde nature.
Si vous n'avez pas de ressources locales, il existe de nombreux livres / tutoriels / fiches de référence en ligne qui devraient être en mesure de 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 certain temps, vous serez moins productif que votre éditeur actuel. Continuez à vous dire: "D'autres personnes ont pu apprendre le Vi, et je suis au moins aussi intelligent qu'eux" (c'est ce que je me dis quand même :))
la source
La principale raison pour laquelle j'utilise
vi
estssh
(ou Putty sous Windows): lorsque vous êtes connecté à distance à un serveur Unix, ilvi
est toujours disponible. Et cela fonctionne avec le VT100 lorsque ni les touches de curseur ni le retour arrière / suppression ne sont mappés.Avoir également un livre comme VI Editor Pocket Reference aide grandement.
la source
gVIM a un très bon tutoriel (lien dans le groupe du menu Démarrer).
J'ai trouvé que travailler à travers cela a aidé à surmonter la bosse d'apprentissage initial; puis passer mon Visual Studio à ViEMU m'a aidé à affiner mes compétences VI.
De plus, les screencasts sur http://vimcasts.org/ sont super!
la source
Vous pouvez mettre la main sur l'un des claviers Happy Hacker d'origine (pas de touches fléchées) et placer votre souris (sans fil) hors de portée chaque fois que vous commencez à éditer.
la source
Il est facile d'écrire une grande liste de commandes / raccourcis, mais il est difficile de tous les mémoriser sans s'exercer.
Concentrez-vous sur une nouvelle commande à la fois. Quand il devient automatique, disons après l'avoir utilisé pendant une semaine ou deux, ajoutez-en un autre à votre répertoire.
Vous parcourrez un long chemin pour accomplir certaines choses à court terme - ce sont des opportunités évidentes pour de nouveaux raccourcis à apprendre.
D'après mon expérience, c'était plus facile lorsque j'essayais de ne pas en prendre trop à la fois.
la source
Ma suggestion numéro un: apprendre à taper rapidement, sans avoir besoin de regarder le clavier.
Si vous ne pouvez pas toucher le type et cherchez toujours le colon ou le hjkl ou:% s / foo / bar, oubliez-le. La saisie peut être plus rapide que l'utilisation de 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.
la source
Faites face au fait que cela créera un succès immédiat. Lorsque vous apprenez un nouvel outil, vous devez être capable de faire quelque chose que vous savez faire avec d'autres outils afin que le problème ne soit pas le vôtre. Après avoir utilisé le nouvel outil pendant un certain temps, il disparaîtra et vous ne vous concentrerez que sur le problème sous-jacent.
Avec quelque chose comme vim (comme d'autres l'ont dit, vim est largement supérieur à vi), il est important de relire et de parcourir régulièrement la documentation. L'interface est complètement indiscernable sans elle. À chaque nouvelle lecture, vous verrez une fonctionnalité et vous direz: "ah ha, cela aurait résolu ce problème que j'essayais de comprendre la semaine dernière", et vous le classerez dans votre cerveau. Les solutions liées aux problèmes réels que vous avez rencontrés sont beaucoup plus faciles à retenir que les raccourcis aléatoires.
En fin de compte, vous pouvez utiliser vim avec un assez petit sous-ensemble de ses fonctionnalités, donc ne soyez pas submergé par toutes les cloches et les sifflets. Pensez à toutes les fonctionnalités de Word, 99% des personnes les utilisent-elles?
la source
ESC gg=G
Réindenter le code et:retab
convertir des tabulations en espaces ou des espaces en tabulations était ce qui m'a accroché à Vim. Donc, en fait, vous n'avez pas besoin d'être obligé de l'utiliser, il vous suffit d'apprendre quand cela peut vous aider à augmenter votre vitesse.Passez
vimtutor
.Commencez à utiliser vim pour une édition simple, comme des fichiers de configuration ou html. Apprenez les commandes selon vos besoins.
Recherchez dans Google un bon .vimrc utilisé par quelqu'un qui utilise une chaîne d'outils qui ressemble à la vôtre. Activez la coloration syntaxique. Trouvez une belle palette de couleurs.
Apprenez les macros parce que Vim est le meilleur pour les tâches automatisées et l'insertion d'extraits de code, comme le formatage de quelques mots en une balise XML complexe ou la conversion d'un CSV en un tableau HTML.
la source
Vous voudrez peut-être commencer avec la crème. Cream se décrit comme "une configuration moderne" de vim. Fondamentalement, c'est une version spéciale de vim qui ressemble à tout autre éditeur de texte à toutes fins pratiques. Mais activez le "mode expert" et vous avez toute la puissance et le comportement de vim.
Vous pouvez donc commencer à utiliser Cream en tant qu'éditeur de texte normal, puis expérimenter le "mode expert" jusqu'à ce que vous soyez suffisamment à l'aise pour passer entièrement à vim.
la source
Installez
gVim
sur toutes les plateformes que vous utilisez.Parcourez ensuite le vimtutor (
:help vimtutor
ouvimtutor
sur la 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 toutes vos modifications. Si vous craignez une perte de productivité, prenez un week-end pour le pratiquer correctement (j'ai déjà fait cela pour passer à dvorak de qwerty et j'ai eu ma productivité suffisamment élevée lundi et j'ai réussi à m'en tenir après).
Cela en vaut la peine et vous ne regarderez pas en arrière!
la source
Personnellement, ce que je devais faire était de m'assurer que je pouvais utiliser les raccourcis clavier Vim (ou du moins, assez proches) dans plusieurs applications. Le fait de devoir changer complètement la façon dont j'éditais le texte chaque fois que je changeais d'éditeurs rendait trop difficile d'obtenir le style d'édition Vim engagé dans la mémoire musculaire.
Dans mon cas, Viemu + vimperator a fait l'affaire.
la source