En tant que programmeur, je passe beaucoup de temps au clavier et je le fais depuis plus ou moins 12 ans. S'il y a quelque chose auquel je ne me suis jamais habitué pendant tout ce temps, ce sont ces micro-interruptions constantes, gênantes et presque inconscientes, que je rencontre lors du codage, en raison de certaines des tâches d'édition de code les plus courantes. Des choses comme un simple copier/coller d'une ligne différente (ou même de la même ligne), ou déplacer une ou deux lignes vers le haut ou le bas de la position actuelle nécessitent trop de frappe ou impliquent l'utilisation des touches de direction ... et cela devient pire quand je veux aller plus loin - je finis par utiliser la souris. Maintenant, imaginez ce même scénario mais sur un ordinateur portable.
J'ai toujours envisagé d'apprendre VIM mais le temps nécessaire pour le maîtriser m'a toujours donné envie de prendre du recul.
J'aimerais entendre des personnes qui l'ont appris et si cela finissait par être une de ces choses, vous ne pouvez pas vivre sans.
Au travail, j'utilise VS2008, C # et R #, qui, ensemble, rendent le code d'édition beaucoup plus rapide et facile que jamais, mais je pense néanmoins que je pourrais profiter de ne pas avoir à utiliser la souris du tout.
Et même pas les flèches.
J'utilise aussi vi et vim depuis environ 20 ans et j'apprends toujours de nouvelles choses.
Le site Best of Vim Tips de David Rayner est une excellente liste, bien qu'il soit probablement plus utile une fois familiarisé avec vim.
Je tiens également à mentionner le site ViEmu qui contient d'excellentes informations sur vi/vim tips et surtout l'article Pourquoi, oh POURQUOI, ces imbéciles utilisent-ils vi? ( version archivée )
Est-ce que je pourrais vivre sans? Facilement.
Est-ce utile? Oui.
vi est garanti sur tous les systèmes Unix et existe également sur la plupart des systèmes Linux. Ce genre de large couverture rend l'apprentissage utile.
Il est beaucoup plus rapide d'utiliser vi pour un Sudo
edit:
$ Sudo vi
En outre, GMail utilise les commandes vi-ish pour sélectionner et déplacer les emails!
Vous n'êtes pas obligé d'être un maître.
Juste apprendre
:w
Enter (écrire):q!
Enter:wq
EnterÀ partir de là, le reste vous rendra plus rapide.
Courir à travers vimtutor ne m'a pris que 30 minutes, ce qui était suffisant pour se familiariser avec vim. Cela valait chaque seconde.
Si vous êtes un programmeur qui édite beaucoup de texte, il est important d'apprendre un éditeur de texte sérieux. L'éditeur de texte sérieux que vous avez appris n'est pas très important et dépend en grande partie des types d'environnement dans lesquels vous vous attendez.
La raison en est que ces éditeurs sont hautement optimisés pour effectuer le type de tâches que vous effectuerez souvent. Par exemple, envisagez d'ajouter le même bit de texte à la fin de chaque ligne. Ceci est trivial dans Un éditeur de texte sérieux, mais ridiculement lourd autrement.
Habituellement, les fonctionnalités les plus meurtrières de vim sont prises en compte: A) il est disponible sur à peu près tous les Unix que vous rencontrerez et B) vos doigts doivent très rarement quitter la ligne de départ, ce qui signifie que vous pourrez éditer le texte très, très rapidement. . C'est aussi généralement très rapide et léger même lors de l'édition de gros fichiers.
Il y a beaucoup d'alternatives, cependant. Bien entendu, Emacs est l'exemple le plus courant, et c'est bien plus qu'un simple éditeur de texte avancé si vous creusez vraiment dedans. Personnellement, je suis un utilisateur très heureux de TextMate après des années d'utilisation de vim/gvim.
Le truc pour passer à l’un d’entre eux est de vous forcer à les utiliser comme prévu. Par exemple, dans vim, si vous effectuez manuellement chaque étape d'un processus en plusieurs étapes ou si vous utilisez les touches fléchées ou la souris, il existe probablement une meilleure façon de le faire. Arrêtez ce que vous faites et cherchez-le.
Si vous ne faites rien d'autre, apprenez les commandes de navigation de base pour vim et Emacs car elles apparaissent partout. Par exemple, vous pouvez utiliser des contrôles de style Emacs dans n’importe quel champ de saisie de texte sous Mac OS, dans la plupart des interpréteurs de commandes Unix, dans Eclipse, etc. Vous pouvez utiliser des contrôles de style vim dans moins (1) commande, le Slashdot , le gmail , etc.
S'amuser!
Cela vaut définitivement .
Il y a une raison évidente que quiconque utilise Vi(m)
vous le dira, et deux autres que les gens ne semblent jamais mentionner.
Voici l'évident:
vi
est à la fois omniprésent et incroyablement puissant, et en l’apprenant une fois, vous avez la possibilité d’exercer ce pouvoir sur à peu près tous les ordinateurs équipés d’un clavier.Et voici les raisons moins connues d’apprendre Vim
:
Ce n'est pas la moitié autant d'efforts que vous le pensez. Exécutez le Vim tutor une fois (vimtutor
sur un shell ou sous Windows, exécutez-le à partir du dossier Vim du menu Démarrer), et vous serez déjà sur la voie de la compétence. et tout est en descente à partir de là. J'étais au niveau où je pouvais utiliser Vim
au travail sans subir de perte de productivité notable en moins d'une semaine de déjeuner.
C'est amusant ! Éditer un texte est pour moi un jeu . J'apprécie activement cela - ce qui est assez ridicule, quand on y pense.
Il y a aussi deux bonnes raisons de ne pas apprendre Vim
:
Cela crée une dépendance et vous souhaiteriez pouvoir utiliser les commandes Vim
dans tout votre calcul et à jurer chaque fois que vous ne le pouvez pas. Heureusement, du moins dans certaines situations, il y a moyensobtenirenvironceci .
Encore une fois, c'est addictif, et bien que vous ne perdiez aucune productivité en utilisant réellement en utilisant Vim
, vous passerez des heures à chercher de bons conseils pour: améliorez encore votre expérience Vim
et lisez le balise Vim sur Stack Overflow.
Il vaut vraiment la peine d'apprendre vim ou emacs. Cela vaut également la peine d'apprendre à taper au clavier. Dans les deux cas, les raisons sont les mêmes: votre réflexion n'est plus interrompue par le processus mécanique d'obtention de votre code sur l'écran.
Pour ce qui est de savoir comment commencer, lancez-vous et commencez à utiliser vim pour tout.
P.S. Le débat emacs-vs-vi est sans fin. J'utilise emacs depuis 26 ans. Si je recommençais aujourd'hui, j'apprendrais vim car (a) les choses se sont améliorées et (b) il y a beaucoup moins de touches de modification (Ctl-Alt-V, tout le monde) et les utilisateurs de vim semblent avoir beaucoup moins de problèmes de frappe.
Vous pouvez obtenir de bonnes fonctionnalités de vim en apprenant la signification de seulement 16 clés: ijkdbw9:q!%s/nN
Esc. Vous pouvez faire les choses nues avec seulement i:wq
Esc.
Les deux premières clés à connaître sont: Esc vous amène au mode commande (le mode dans lequel vous démarrez) et i
vous emmène au mode insertion (saisie normale).
Pour économiser, vous devez
:
w
puis EnterPour sauvegarder et quitter, vous devez
:
wq
puis EnterPour ne pas économiser et forcer, vous devez
:
q!
puis EnterPour en savoir plus, vous pouvez exécuter vimtutor
en ligne de commande. C'est une leçon de longueur moyenne et bien structurée.
Au-delà de i
et Esc: vous pouvez répliquer ou dépasser certaines fonctionnalités de MS Word avec seulement jkwbd3:%s/nN
.
b
vous renvoie une parole (Ctrl+←)w
vous fait avancer un mot (Ctrl+→)9w
vous fait avancer de neuf motsdb
supprime le mot précédent (Ctrl+Backspace)d3b
supprime les trois mots précédents9j
descend de 9 lignesornithopter
Enter vous amène à la prochaine instance du mot "ornithopter", puis n
et N
à la prochaine et précédente occurrence de "ornithopter" respectivement.%s/confounded/dangfangled/
Enter substitue chaque "confondu" avec "dangfangled" (comme find and replace all
dans MS Word)N'importe lequel d'entre eux devrait être exécuté en mode "commande" (Esc), pas en mode insertion (i
).
Je suis récemment passé au VIM et je pense que cela en vaut la peine. Si vous avez besoin de "simplement faire quelque chose", vous pouvez toujours rester en mode insertion, où vim est (généralement) comme un éditeur de texte normal.
J'ai remarqué que des choses qui ne me dérangeaient pas, comme tendre la main vers les touches fléchées, se sentent mal maintenant et demandent trop d'efforts. Le mouvement de ma main et l'utilisation de la souris ont définitivement diminué, ce qui est avantageux tant pour l'ergonomie que pour la productivité.
Cela dépend de ce que vous voulez faire avec VIM. Cela n'a pas de sens de l'apprendre uniquement parce que beaucoup de gens ne peuvent pas s'en passer.
Lorsque je travaillais beaucoup sur des environnements UNIX, je ne pouvais pas m'en passer. Même lorsque VIM n'était pas installé sur un ordinateur UNIX, je pouvais au moins utiliser vi. Vous pouvez toujours compter dessus, même si la machine ne vous appartient pas (celle du client).
Maintenant, je programme en C # et travaille principalement dans un environnement Windows. J'ai installé VIM sur mon PC ... et je n'en ai pas besoin.
Évaluez si vous avez vraiment besoin de VIM et si cela vous aide dans votre "flux de travail". Essaye le. Joue avec. Si vous pensez en avoir besoin, respectez-le… la courbe d'apprentissage est très raide.
J'ai appris vi parce que je devais le faire.
Mon professeur fou nous a forcés à apprendre à programmer en C en utilisant un terminal pour un système AIX.
C'était une vraie douleur, mais ça en valait la peine.
Aujourd'hui, je n'utilise vi que pour les modifications rapides ou les petits programmes.
Quand je dois partir pour un projet, je préfère utiliser et IDE. Dans mon cas, l’idée d’IntelliJ est très efficace, car je peux coder pendant des heures sans prendre la souris.
Je ne sais pas combien de raccourcis a VS2008, mais s’ils sont aussi faciles à découvrir que Eclipse, je pense que vous avez des problèmes, partez pour vi.
Si vous NE modifiez PAS le code en dehors de IDE et que votre IDE dispose de bons raccourcis, vous feriez mieux de les apprendre, et ensuite, allez apprendre vi de toute façon.
:)
J'ai utilisé vi/vim depuis plus de 25 ans. Si vous connaissez déjà un éditeur de ligne de commande, vous n'avez peut-être pas besoin d'apprendre vi/vim. Mais si vous ne connaissez pas très bien les autres éditeurs de ligne de commande, cela vaut la peine de l’apprendre. Il est assez facile d'être productif dans vi/vim avec peu d'effort.
J'utilise VIM à peu près exclusivement maintenant.
J'avais l'habitude d'utiliser Vim pour l'édition et VS Editor pour le débogage. Cela semble probablement un peu fou, mais j’ai trouvé que le paradigme Vi (les macros, l’édition basée sur la clé locale, etc.) était un atout pour ma productivité, que l’édition sous VS était fastidieuse.
Grâce à Viem , je n'ai même plus besoin de changer. Ce n’est pas encore la solution idéale (la complétion du code n’est parfois pas aussi élégante que dans vim natif et l’enregistrement macro n’est pas parfait), mais c’est bien mieux que de changer constamment de va-et-vient.
La courbe d'apprentissage de Vim est probablement exagérée. Je pense qu'une fois que vous y entrez, c'est assez intuitif.
Mon travail m'a obligé à prendre vim et il est rapidement devenu une seconde nature. Maintenant, mes plaintes concernent les IDE qui n'ont pas d'émulation ni de plugins vim. Je remarque que la touche Échap est devenue mon ennemi en dehors de Vim.
J'ai trouvé plusieurs émulateurs pour vi dans Visual Studio:
Premièrement, une bonne connaissance de vi (m) vous évitera de perdre du temps à éditer d’urgence les fichiers de configuration sur un serveur sous contrôle. Il peut tenir sur une connexion ssh lente.
La méthode de saisie de vim sera la meilleure défense contre le canal carpien si vous l’utilisez efficacement avec un clavier ergonomique.
La meilleure façon de comprendre l’intérêt de vim est de démarrer un projet occasionnel à la maison, de débrancher votre souris et de scotcher sur les touches de direction.
Et lire l'aide
Deux avantages de vi/vim:
il est très léger
il est installé sur presque tous les systèmes * NIX
Je maintiens un très gros projet Linux sur l'ordinateur distant. Il n’est pas possible d’utiliser Eclipse ou un IDE similaire basé sur GTK. J'y travaille depuis 3 ans. Et je mets mon vim juste pour ce projet. Et toujours peaufiner.
Maintenant, je peux faire n'importe quoi à partir de Vim: contrôle de source, SQL, déboguer, compiler, naviguer - parcourir très rapidement le code source de 1 Go.
Visual Studio ou Eclipse ne pouvait pas gérer tout cela. Et si j'avais le choix, je ne changerais pas Vim en un autre éditeur ou IDE.
J'ai appris Vim. Ce n'était pas trop d'effort. Maintenant j'aime absolument ci "ci (cw V: s/de/à/g
Oui, prenez le temps d'apprendre au moins un peu de 'vi' et de 'vim'. Ça voyage très bien.
Vous ne serez jamais bloqué face à un système client Unix/Linux/Mac pour lequel vous ne disposez pas de capacités d'installation. Même sous Windows (si vous avez des capacités d'installation), Vim est gratuit et facile à installer. (Au lieu d'investir votre courbe d'apprentissage uniquement dans quelque chose comme UltraEdit, bien qu'un excellent éditeur puisse ne pas être disponible tout le temps ...).
Learning vi peut vous préparer à apprendre d'autres outils tels que 'sed' et les regex en général: des éléments généralement transférables.
De plus, si vous voulez être un vrai geek, vous avez simplement besoin de savoir "vi/m" ou vous aurez l'air d'un faux; -)
Je dirais que vim vaut vraiment la peine d'apprendre. Je l’ai ramassé l’été dernier et c’est mon éditeur de prédilection pour à peu près tout (Java est une tâche difficile, mais c’est faisable lorsque je n’ai pas besoin d’un support important en matière d’analyse). Comme tout le monde l’a déjà affirmé, c’est un outil extrêmement efficace.
Pour ce que ça vaut, je n’ai appris qu’un assez petit sous-ensemble de fonctionnalités de vim (qui a pris un jour ou deux) à partir de tutoriel graphique , et quelques aléas de ici (longue lecture), et la fonctionnalité de recherche et remplacement, et je suis devenu accro. J'ai appris des choses depuis lors, mais à ma guise. Je dirais que la courbe d'apprentissage s'estompe à ce stade, mais ensuite, je l'utilisais assez fort et j'étais entourée d'autres qui l'étaient aussi.
Je suis dans la même situation que vous et, en tant que débutant chez Vim, je trouvais cela un peu intimidant: la courbe d'apprentissage semble raide. D'après ce que j'ai appris en quelques heures à peine, je sens déjà que je ne pourrai plus m'en passer.
Icisont a peliens que j'ai trouvé pour que des screencasts Vim utiles vous montrent de quoi il est capable.
Bram Moolenaar (dictateur bienveillant de Vim) a donné un bon conseil à propos de ce dernier lien: il serait inefficace d'essayer d'apprendre chaque commande et chaque fonction. très bien, cherchez un moyen de le rendre plus efficace, puis faites-en une habitude.
Vous voudrez peut-être apprendre vim parce que vous n'êtes peut-être pas satisfait des éditeurs que vous utilisez déjà.
Vous voudrez peut-être apprendre vim parce que beaucoup de gens disent que c'est cool. Regardez combien de réponses vous avez à cette question.
Je vais fournir une raison supplémentaire pour apprendre vim. Il est réputé pour la qualité et l'exhaustivité de sa documentation. Ainsi, vous trouverez la plupart des réponses à vos questions dans son système d’aide dès que vous parviendrez à insérer les mots-clés appropriés dans vos requêtes d’aide.
Pour apprendre rapidement vi (m), il faut d’abord comprendre le tout. Vim a un grand ensemble de commandes de déplacement du curseur, cochez-en quelques unes (X est un caractère, # un chiffre):
j k entrez les flèches 0 $ W Wb B CTROLD CTROLE CTROLY H M L FX FX TX TX,; % gg G n N mX 'X' '
et beaucoup plus, il serait ennuyeux d’énumérer. Beaucoup d'entre eux supportent un compte avant la commande, comme 4j pour déplacer 4 lignes vers le haut.
Maintenant, revenons à la conception, vous tapez une commande comme d pour supprimer suivie d'un mouvement du curseur et la commande s'applique au morceau de texte à partir de la position du curseur jusqu'à la fin du mouvement. Par exemple, H se positionne en haut de l'écran, dH supprime en haut de l'écran et cH change (remplace) en haut de l'écran.
Ce design est assez puissant. Il réduit également, ou organise, ce que vous devez apprendre. La première étape consiste à apprendre quelques commandes de déplacement du curseur. Disons 8 ou 10 au début. Alors vous avez presque fini.
Vim mérite certainement d’apprendre à résumer en partie ce qui a été dit précédemment, voici les raisons principales:
Remarquez également que si vous aimez les combinaisons de touches Vim, il existe également des IDE qui incluent des liaisons Vim dans leurs éditeurs pour des commandes simples, par exemple Komodo Edit .
Pour obtenir de l'aide sur l'apprentissage de Vim, essayez de taper "vimtutor" dans votre terminal et suivez les instructions. Il y a aussi un livre qui est particulièrement bon Hacking Vim
Ne soyez pas effrayés par le nombre de commandes, je n'ai rencontré personne qui en ait utilisé plus d'une vingtaine au plus. Je trouve cela indispensable, parce que quand je pense au code, je pense au texte, mais à la souris, ça me gâte. Je pense que les gros trucs sont de l’apprendre petit à petit et de ne pas hésiter à jouer: les fonctions d'annulation sont excellentes pour explorer ses comportements.
De plus, si vous y entrez profondément, vim est scriptable. Les possibilités sont littéralement infinies.
(Oui, tout cela s'applique aussi à emacs ...)
J'étais heureux dans mon monde de textpad et d'ecplise jusqu'à ce que je commence à travailler avec des serveurs fonctionnant sous Linux. Le script à distance et la configuration des fichiers de configuration étaient nécessaires!
C'était difficile au début, mais maintenant je peux facilement configurer et configurer mes serveurs.
Moi aussi, je tarde à apprendre vi ou vim. En fait, je me moquais des "vi mecs" qui semblaient toujours pratiquer l'aérobic au doigt. Ensuite, lorsque je me suis éloigné de Windows pour passer à Linux en tant que système d'exploitation principal, je devais me familiariser davantage avec vim. C'était une courbe d'apprentissage et c'est toujours le cas. Après 9 ans d'utilisation quotidienne de vim, je suis toujours en train d'apprendre de nouvelles façons plus rapides de faire les choses. Ce que j’appelais "aérobique au doigt" s’est avéré être un moyen extrêmement efficace d’être productif. Je peux maintenant faire beaucoup plus de développement de code en beaucoup moins de temps et d’efforts qu’auparavant. Et comme je suis sûr que vous savez que vim fonctionne sur toutes les plates-formes, vous l'avez toujours lorsque vous en avez besoin. En outre, si vous aimez les interfaces graphiques, ils ont des versions graphiques pour la plupart des plateformes. Personnellement, tout comme la souris, je ne veux pas voir une barre de menus, des barres de défilement, etc. encombrant mes fenêtres d'édition.
Si vous décidez de donner un tourbillon à vim, je vous recommande vivement le livre O'Reilly "vi Editor Pocket Reference". C'est bon marché et c'est génial si vous apprenez simplement vi (vim). Les livres vim complets sont également bons, mais la référence de poche vous donne toutes les bases pour être productif rapidement.
Apprendre quelque chose de nouveau vaut toujours la peine, IMHO. Je vous suggère d'imprimer une feuille de triche et de vous forcer à l'utiliser jour après jour.
Je pense que cela vaut vraiment le temps et les efforts nécessaires pour apprendre vim. Pour moi, cela rend le texte et la navigation dans le texte si efficaces, il est difficile d’imaginer revenir à des combos emacs ou ctrl/shift/alt/méta.
Ne soyez pas intimidé par toutes les fonctionnalités sophistiquées de vim. Une fois que vous en aurez assez utilisé, vous saurez quelles commandes vous utilisez le plus et quelles choses vous pouvez oublier.
L’incroyable omniprésence de Vim, et l’incroyable encore plus incroyable des Vi-clones en général, sur les systèmes Unix seuls, suffisent à rendre l’apprentissage intéressant.
En plus de cela, toute la pensée de style Vi est quelque chose qui m'a rendu un peu plus productif. Pour une personne non habituée aux modes tels que le mode commande et le mode insertion, il semble un peu excessif de devoir entrer dans un mode juste pour insérer du texte. Mais, après avoir utilisé Vim pendant quelques mois et appris pas mal de trucs et astuces, Vim semble être un atout qui semble en valoir la peine.
Bien sûr, la foule d’Emacs a dit la même chose à propos de la pensée à la Emacs, mais j’ai renoncé à apprendre Emacs parce que Vim était plus simple et faisait le travail pour moi.
J'ai appris à aimer vi après avoir vu quelqu'un qui était très habile à naviguer dans celui-ci pour effectuer des modifications très rapidement. Vous pouvez vraiment coder rapidement avec. Une autre raison qui me plaît, c’est que parfois, je trouve que la souris dans un IDE me fait vraiment mal aux mains après un certain temps et que vi procure un changement agréable. Comme d'autres l'ont mentionné, il est également presque toujours disponible sur les systèmes Unix et fonctionne bien même avec des connexions moche.
Une chose que je n'ai pas vue mentionnée est que connaître vi a l'avantage supplémentaire de "crédibilité geek" dans certains milieux. Je peux penser à au moins quelques personnes qui rient quand elles voient un nouveau programmeur se lancer dans nedit pour apporter des modifications à un fichier.
Non, apprendre vim vaut plus que l'effort.
Un investissement dans l'apprentissage VIM (à ma préférence) ou dans EMACS sera rentable.
Je suggère de visiter le site de Derek Wyatt, de passer par le tuteur VIM et de consulter le livre de Steve Oualine PDF.
Vim m'aide à me déplacer et à modifier plus rapidement que les autres éditeurs que j'ai utilisés. Mon travail IDEs sont assez limités dans ce qu’ils permettent à faire et sont typiquement consacrés à un environnement particulier. Il y a des tâches qui nécessitent encore que je revienne au IDE (comme les débogueurs qui font partie de l'EDI compilé).
Personnellement,
Je trouve que beaucoup de ces éditeurs de texte terminaux sont parfois incapables. Est-ce que j'investirais du temps pour en prendre un? Absolument! Je continuerais à apprendre l'un à côté d'un IDE. Bien sûr, à la fin, cela dépend vraiment de la préférence.
Oui: Si vous n'utilisez pas et ne prévoyez pas d'utiliser un quelconque IDE à l'avenir. Et même si vous utilisez un IDE, vous y retournerez pour faire beaucoup de choses. Dans vim, vous pouvez écrire des scripts, effectuez des tâches complexes, par exemple, au lieu de modifier individuellement 500 lignes, utilisez une commande (un peu cryptique mais facile à comprendre une fois que vous avez choisi). Au début, je trouvais cela difficile mais plus tard, cela m’a beaucoup aidé. Même le meilleur éditeur de l'IDE n'aura pas le pouvoir de vim. Vim peut bien fonctionner avec CVS, SVN, make, débogueurs, etc.
Non: si vous vous en tenez aux IDE comme Eclipse ou Netbeans. Ou si vous trouvez que des éditeurs comme Kate vous suffisent. Enfait Kate ou Notepad ++ ou jEdit ont une interface graphique et des fonctionnalités que vous pouvez manquer dans vim. par exemple. La visionneuse de symboles de Kate ou l’immense barre de menus de Notepad ++.