Quels sont les avantages de l'apprentissage de Vim? [fermé]


467

En tant que programmeur, je passe beaucoup d'heures 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 ennuyeuses et presque inconscientes que j'éprouve lors du codage, en raison de certaines des tâches d'édition de code les plus courantes. Des choses comme un simple copier-coller à partir d'une ligne différente (ou même la même ligne), ou le déplacement de 1 ou 2 lignes vers le haut ou vers le bas à partir de la position actuelle nécessitent trop de frappe ou impliquent l'utilisation des touches fléchées ... et cela devient pire quand je veux aller plus loin - je finis par utiliser la souris. Imaginez maintenant ce même scénario mais sur un ordinateur portable.

J'ai toujours pensé à apprendre le VIM mais le temps nécessaire pour le maîtriser m'a toujours donné envie de prendre du recul.

J'aimerais entendre des gens qui l'ont appris et si cela finit par être une de ces choses dont vous ne pouvez pas vous passer.

Au travail, j'utilise VS2008, C # et R #, qui, ensemble, rendent l'édition de code beaucoup plus rapide et plus facile que jamais, mais je pense néanmoins que je pourrais profiter de ne pas avoir à utiliser la souris du tout.

Et pas même les touches fléchées.


7
Ne pas avoir à basculer entre le clavier et la souris est vraiment agréable. Sur Mac, j'ai utilisé des touches de navigation emacs (ctrl-A par exemple) même dans un éditeur GUI comme BBEdit ou Xcode, juste pour éviter les mouvements supplémentaires avec la souris.
Craig S

236
Cela en vaut vraiment la peine. Learn vim;)
Kyle Walsh

20
Vous pouvez apprendre vim de base (oublier vi) en quelques minutes, tapez simplement vimtutor dans le terminal et vous serez réglé avec la base - ce que vous apprendrez dans les 20 prochaines années dépendra de vous. Je suis simplement curieux de savoir comment le VS2008, C # & R # vous aide à résoudre les problèmes liés à la perte de votre vie entre le clavier et les touches fléchées / souris.
stefanB

43
L'un des meilleurs investissements que j'ai jamais faits.
Johnsyweb

10
J'ai créé ce jeu pour aider mon neveu de sept ans à apprendre à se déplacer rapidement dans Vim: kikuchiyo.org La version bêta vous permet d'attaquer les ennemis avec un sabre laser, `` i '' pour l'attaque à gauche et `` a '' pour la droite: PI a appris Vim pour les mêmes raisons que vous. J'ai trouvé que se déplacer dans la partie la plus difficile à laquelle s'habituer. J'espère que le jeu vous aidera à accélérer, si vous avez besoin d'aide :) Bonne chance! :)
kikuchiyo

Réponses:


249

J'utilise également 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 que vous vous êtes familiarisé avec vim.

Je veux également mentionner le site ViEmu qui contient d'excellentes informations sur les astuces vi / vim et en particulier l'article Pourquoi, oh POURQUOI, ces nutheads utilisent vi? ( version archivée )


8
Oui, j'apprends toujours de nouvelles choses aussi. Toujours mon éditeur préféré aussi.
Craig S

20
Je me demande si c'est une bonne ou une mauvaise chose. Si vous apprenez constamment de nouvelles choses, la courbe d'apprentissage est VRAIMENT abrupte, les fonctionnalités sont VRAIMENT cachées et il n'y a aucun sentiment de maîtrise. Quoi qu'il en soit, si vous vouliez RISC, vous êtes allé avec vi au lieu de vim, non?
Bastibe

7
@Paperflyer: J'ai eu les mêmes pensées. Si vous ne l'avez toujours pas maîtrisé après 20 ans, c'est un mal de tête que je ne suis pas sûr de vouloir
Dinah

7
Comment? Cela signifie que même s'il possède tant de fonctionnalités, vous pouvez continuer à apprendre, mais vous n'avez pas besoin de les apprendre toutes pour être plus productif.
Arda Xi

5
"Pourquoi, oh POURQUOI, ces fous utilisent-ils vi ?." - Bon lien, surtout pour la question

184

Puis-je vivre sans ça? Facilement.

Est-ce utile? Oui.

Raisons pour apprendre

  • vi est garanti sur tous les systèmes Unix et existe également sur la plupart des systèmes Linux. Ce type de large couverture vaut la peine d'apprendre.

  • Il est beaucoup plus rapide d'utiliser vi pour un sudomontage:

    $ sudo vi

  • En outre, GMail utilise les commandes vi-ish pour sélectionner et déplacer les e-mails!

Vous n'avez pas besoin d'être un maître.

Apprenez

Les bases:

  • Comment passer du mode commande au mode insertion i
  • Comment passer du mode insertion au mode commande Esc
  • Comment remonter une ligne en mode commande k
  • Comment parcourir une ligne en mode commande j
  • Comment naviguer à gauche d'un personnage en mode commande h
  • Comment naviguer à droite d'un personnage l
  • Comment enregistrer un fichier :wEnter (écriture)
  • Comment quitter sans sauvegarder (en mode commande) :q!Enter
  • Comment annuler u
  • Comment refaire Ctrl +r
  • Vous pouvez combiner l'écriture et la fermeture (en mode commande): :wqEnter

De là, le reste vous rendra plus rapide.


J'ai toujours utilisé "vi est facile; vous utilisez la touche ell pour déplacer le curseur vers la droite" comme moyen humoristique (j'espère) de le présenter. Mais je l'utilise depuis longtemps et je ne m'en passerais pas. Je ne peux pas réclamer plus de 25 ans pour un autre couple, cependant, donc aucune nouvelle réponse de ma part.
Jonathan Leffler

16
C'est ainsi que je l'ai appris. Commencez avec le minimum et construisez-en un peu chaque jour. Prenez le temps d'apprendre une façon légèrement meilleure d'accomplir une tâche. Voir les "7 habitudes d'édition de texte hautement" pour l'inspiration.
Ben

Gmail, les raccourcis clavier de recherche expérimentale de Google, les raccourcis clavier de Slashdot, man et moins utilisent tous des liaisons de type vim. Cela m'a surpris de découvrir que j'avais accidentellement appris cela sans connaître Vim! Même Firefox utilise / pour la recherche incrémentielle (avec une sémantique très légèrement différente de Ctrl + F).
Adam Rosenfield,

29
[:] [X] [Entrée] est identique à [:] [W] [Q] [Entrée]
Vitalii Fedorenko

20
[Z] [Z] est identique à [:] [X] [Entrée]
Kos

138

Traversant vimtutor ne m'a fallu que 30 minutes, ce qui était suffisant pour se familiariser avec vim. Cela valait chaque seconde.


Si vous connaissez un meilleur lien explicatif, veuillez changer le mien :)
Blorgbeard est sorti

43
vimtutor est exactement cela, un tutoriel. Je l'ai fait tous les jours pendant environ 10 jours. La première fois, il m'a fallu environ 30 minutes, le lendemain 20, puis 15. À la fin de la semaine, j'avais la plupart de son commandement imprimé dans mon esprit. Je pense que plutôt que d'essayer de mémoriser, la répétition est la meilleure façon d'approcher Vim. 15 min tous les jours pendant une semaine semble être un très petit prix.
Michael Ekoka

28
Et une fois que nous aurons fini avec VIMTUTOR? Quelle est la prochaine étape pour en savoir plus?
privatehuff

3
@privatehuff: lisez et appliquez sept habitudes d'édition de texte efficace .
Frank Kusters

1
Hou la la! c'était comme un de ces objets cachés dans un jeu. C'était juste là dans mon système et je ne savais pas qu'il existait. L'un des tutoriels les plus utiles et rapides de vim. En utilisant vim pendant un certain temps, j'ai encore appris quelques astuces de base que je ne connaissais pas. recommandé à tout le monde. Aussi une petite suggestion: si vous utilisez vim sur un ordinateur portable doté d'un pavé tactile et qu'il prend en charge les gestes, désactivez-le avant d'utiliser vim car s'il est accidentellement touché, il peut déplacer le curseur vers des endroits inattendus, ce qui gaspille parfois une bonne édition entière.
Barracuda

69

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 apprenez n'est pas très important et dépend largement des types d'environnements dans lesquels vous vous attendez à éditer.

La raison en est que ces éditeurs sont hautement optimisés pour effectuer les types de tâches que vous ferez beaucoup. Par exemple, envisagez d'ajouter le même bit de texte à la fin de chaque ligne. C'est trivial dans A Serious Text Editor, mais ridiculement lourd autrement.

Généralement, les fonctionnalités de vim de tueur sont prises en compte: A) qu'il est disponible sur à peu près tous les Unix que vous rencontrerez et B) vos doigts doivent très rarement quitter la ligne d'accueil, ce qui signifie que vous pourrez modifier le texte très, très rapidement . Il est également généralement très rapide et léger, même lors de l'édition de fichiers volumineux.

Il existe cependant de nombreuses alternatives. Emacs est l'exemple le plus courant, bien sûr, et c'est bien plus qu'un simple éditeur de texte avancé si vous y creusez vraiment. Je suis personnellement un très heureux TextMate maintenant après des années d'utilisation de vim / gvim.

L'astuce pour passer à l'un d'eux est de vous forcer à les utiliser comme ils étaient destinés. 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 recherchez-le.

Si vous ne faites rien d'autre, découvrez 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 shells Unix, dans Eclipse, etc. Vous pouvez utiliser des contrôles de style vim dans la commande less (1), sur Slashdot , sur gmail , etc.

S'amuser!


7
Cela a un point que beaucoup de gens négligent. Presque toutes les tâches répétitives ont un raccourci. Les développeurs adorent les raccourcis. Comme l'a dit rbright, si vous vous trouvez à répéter une étape, arrêtez-vous et voyez si quelqu'un a déjà documenté un raccourci.
AvatarKava

A) était l'une des principales raisons pour lesquelles j'utilisais VIM - j'étais à l'origine un gars emacs, mais tous les systèmes ne l'avaient pas et c'était parfois lent sur le réseau ou sur des serveurs occupés. VIM est omniprésent, petit et rapide.
jpeacock

3
Mon éditeur fait constamment de mauvaises blagues. Je devrais changer.
Greg Graham

Vous m'avez dit: "Si vous êtes un programmeur qui édite beaucoup de texte, il est important d'apprendre un éditeur de texte sérieux." Le pire, c'est qu'il semble impossible d'en apprendre deux (beaucoup moins plus) à l'intérieur qu'à l'extérieur, presque par définition. Vous étudiez des cas marginaux à un moment donné, et la connaissance de la façon d'accomplir la tâche X en une ne se traduit généralement pas. Et il y a toujours des choses que je fais dans les éditeurs "marginaux" - j'utilise toujours JEdit pour JTidy, Code2HTML, pour rechercher plusieurs fichiers, par exemple. Votre principal est un lancer de dés, et il n'y a pas de solution miracle, mais oui, apprenez absolument un et jouez avec plusieurs. ; ^)
ruffin

1
@ruffin C'est vrai, vous ne pouvez pas vraiment maîtriser deux éditeurs différents en même temps: si vous maîtrisez un éditeur, vous utiliserez inconsciemment beaucoup de ses commandes , et cela signifie que vous essayerez très probablement d'utiliser le même commande lorsque vous utilisez l'autre éditeur. Combien de fois ai-je maudit mon navigateur pour ne pas m'avoir permis de corriger les indentations avec un simple <esc> >i{... C'est vraiment la même chose qu'avec la saisie tactile: vous apprenez une disposition de clavier, et vous vous y tenez car vous ne pourrez jamais vous arrêter vos doigts de taper les mauvaises touches sur une disposition différente.
cmaster - réintègre monica

36

Cela en vaut vraiment la peine.

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'évidence:

  1. vi est à la fois omniprésent et incroyablement puissant, et en l'apprenant une fois, vous gagnez la possibilité d'exercer ce pouvoir sur à peu près n'importe quel ordinateur doté d'un clavier.

Et ce sont les raisons les moins connues d'apprendre Vim:

  1. Ce n'est pas la moitié de l'effort que vous pensez que ça va être. Parcourez le tuteur Vim une fois ( vimtutordans un shell ou dans Windows, exécutez-le à partir du dossier Vim dans le menu Démarrer), et vous serez déjà bien sur votre chemin vers la compétence, et tout est en descente à partir de là. J'étais au niveau où je pouvais utiliser Vimau travail sans perdre de productivité notable en moins d'une semaine de déjeuner.

  2. C'est amusant ! L'édition de texte est comme un jeu pour moi maintenant. Je l'apprécie activement - ce qui est assez ridicule, quand on y pense.

Il y a aussi deux bonnes raisons de ne pas apprendre Vim:

  1. C'est addictif, et vous vous retrouverez à souhaiter pouvoir utiliser des Vimcommandes dans tous vos ordinateurs, et à maudire quand vous ne le pouvez pas. Heureusement, au moins pour certaines situations, il existe des moyens de contourner ce problème .

  2. Encore une fois, c'est addictif, et bien que vous ne perdiez aucune productivité en utilisant réellement Vim, vous perdrez des heures à chercher de bons conseils pour améliorer votre Vimexpérience et à lire la balise Vim sur Stack Overflow.


12
Haha numéro 2 sur les raisons "de ne pas" apprendre le VIM est si juste. Pendant tout ce temps, j'enregistre la modification de texte, je passe des lectures sur la modification de texte. Ridicule.
Karl Floersch

Oui, j'aurais aimé pouvoir jouer à stardew valley en utilisant hjkl ...
xis

32

Cela vaut vraiment la peine d'apprendre Vim ou Emacs. Il vaut également la peine d'apprendre à taper. Dans les deux cas, les raisons sont les mêmes: votre réflexion n'est plus interrompue par le processus mécanique de mise en ligne de votre code .

Pour commencer, plongez et commencez à utiliser vim pour tout.

PS Le débat emacs-vs-vi est sans fin. J'utilise emacs depuis 26 ans. Si je recommençais aujourd'hui, j'apprendrais vim parce que (a) ça s'est amélioré et (b) il y a beaucoup moins de touches de modification (Ctl-Alt-V, n'importe qui) et les utilisateurs de vim semblent avoir beaucoup moins de problèmes de frappe.


Le RSI est le seul risque professionnel des développeurs. Je n'y ai jamais pensé de cette façon mais je parie que c'est un très bon point. Il est beaucoup plus difficile de taper des accords d'un point de vue musculaire. Je savais qu'il y avait une bonne raison d'utiliser vi!
DigitalRoss

1
J'ai utilisé les deux, j'ai été "baptisé" avec vim et j'ai appris les emacs il y a quelques mois. Je préfère vim parce que les tâches sont divisées - vous modifiez ou insérez, vous ne faites pas les deux. Cette distinction m'aide à penser à ce que je fais, et fait que les commandes "normales" 1-2 touches, au lieu de 2-4. Je souhaite juste que vim soit basé sur Lisp (et non, le mode viper ne prend pas en charge toutes mes fonctionnalités standard de vim. Oui, je pourrais rouler le mien, mais je les manquerais chaque fois que je toucherais un nouvel ordinateur / système)
Wayne Werner

1
@WayneWerner Je suis vraiment obsolète, mais vous pouvez contrôler la version de tous vos elisp afin de pouvoir les synchroniser via des ordinateurs.
YuriAlbuquerque

@YuriAlbuquerque, j'ai en fait commencé à réfléchir très sérieusement à la création d'un script de configuration de l'environnement automatique, en conservant tous mes fichiers dot sur github ou quelque chose du genre.
Wayne Werner

17

Vous pouvez obtenir une bonne fonctionnalité de vim en apprenant la signification de seulement 16 touches: ijkdbw9:q!%s/nNEsc. Vous pouvez faire les os nus avec juste i:wqEsc.

Les deux premières touches que vous devez connaître sont les suivantes: Escvous amène en mode commande (le mode dans lequel vous démarrez) et ivous amène en mode insertion (saisie normale).


Pour économiser, vous devez

  1. sortir du mode de frappe ( Esc)
  2. taper deux points :
  3. tapez en minuscules wpuisEnter

Pour enregistrer et quitter, vous devez

  1. sortir du mode de frappe ( Esc)
  2. taper deux points :
  3. tapez en minuscules wqpuisEnter

Pour ne pas enregistrer et forcer la fermeture, vous devez

  1. sortir du mode de frappe ( Esc)
  2. taper deux points :
  3. tapez en minuscules q!puisEnter

Pour en savoir plus, vous pouvez exécuter vimtutor sur la ligne de commande. C'est une leçon de longueur moyenne et bien structurée.

Au i- delà et Esc: vous pouvez répliquer ou dépasser certaines fonctionnalités de MS Word avec seulement jkwbd3:%s/nN.

  1. bvous ramène un mot ( Ctrl+ )
  2. wvous fait avancer un mot ( Ctrl+ )
  3. 9w vous fait avancer de neuf mots
  4. dbsupprime le mot précédent ( Ctrl+ Backspace)
  5. d3b supprime les trois mots précédents
  6. 9j descend de 9 lignes
  7. / ornithopter Entervous emmène à l'instance suivante du mot « ornithoptère », puis net Nà l'occurrence suivante et précédente de « ornithoptère » respectivement.
  8. :%s/confounded/dangfangled/ Enterremplace chaque "confondu" par "suspendu" (comme find and replace alldans MS Word)

N'importe lequel doit être exécuté en mode "commande" ( Esc), et non en mode insertion ( i).


16

Je suis récemment passé à VIM, et je pense que ça vaut le coup. Si vous devez "simplement faire quelque chose", vous pouvez toujours rester en mode insertion, où vim est (principalement) comme un éditeur de texte normal.

J'ai remarqué que des choses qui ne me dérangeaient pas, comme atteindre les touches fléchées, se sentent maintenant mal et trop d'efforts. Cela a définitivement diminué le mouvement de ma main et l'utilisation de la souris, ce qui est bon pour l'ergonomie et la productivité


12

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.

Quand je travaillais beaucoup sur des environnements UNIX, je ne pouvais pas m'en passer. Même lorsque VIM n'était pas installé sur une machine UNIX, je pouvais au moins utiliser vi. Vous pouvez toujours compter dessus - même si la machine n'est pas la vôtre (celle du client).

Maintenant, je programme en C # et je travaille principalement sur l'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 s'il vous soutient dans votre "flux de travail". Essaye le. Joue avec. Si vous pensez en avoir besoin, respectez-le ... la courbe d'apprentissage est très abrupte.


Il existe une extension de Visual Studio pour les utilisateurs de VIM, consultez-la sur visualstudiogallery.msdn.microsoft.com/…
yoel halb

10

J'ai appris vi parce que je devais.

Mon professeur fou nous a obligés à apprendre à programmer en C à l'aide d'un terminal vers un système AIX.

C'était une vraie douleur, mais ça valait le coup.

Aujourd'hui, je n'utilise vi que pour les modifications rapides ou les petits programmes.

Quand je dois partir pour un projet, j'utilise plutôt et IDE. Dans mon cas, l'idée IntelliJ est très bonne pour la tâche, car je peux coder pendant des heures sans saisir la souris.

Je ne sais pas combien de raccourcis possède VS2008, mais s'ils sont aussi détectables qu'Eclipse, je pense que vous avez des ennuis, allez pour vi.

Si vous ne modifiez PAS le code en dehors de l'IDE et que votre IDE a de bons raccourcis, vous feriez mieux de les apprendre, puis allez apprendre vi de toute façon.

:)


Il a demandé les avantages du VIM et non un avis.
Blaze349

@ Blaze349 non, il a demandé à entendre des gens comment il l'avait appris (voir le post original ici), ce qui est exactement ce que j'ai répondu. Cette question a presque 8 ans et a fait l'objet de plusieurs critiques au cours des années, ma réponse correspondait à l'original. Tenez-en compte lorsque vous commentez.
OscarRyz

9

J'utilise 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 d'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.


6

J'utilise VIM presque exclusivement maintenant.

J'utilisais Vim pour l'édition et VS Editor pour le débogage. Cela semble probablement un peu fou, mais j'ai trouvé le paradigme Vi (macros, édition basée sur les touches home, etc.) un tel coup de pouce à ma productivité, que l'édition en VS était délicate.

Merci à Viemu , je n'ai même plus besoin de changer. Ce n'est pas encore la solution parfaite (l'achèvement du code n'est parfois pas aussi élégant que dans vim natif et l'enregistrement macro n'est pas parfait), mais c'est beaucoup mieux que de basculer constamment.

La courbe d'apprentissage de Vim est probablement exagérée. Je pense qu'une fois que vous y entrez, c'est assez intuitif.


5

Mon travail m'a obligé à prendre vim et c'est rapidement devenu une seconde nature. Maintenant, mes plaintes concernent des IDE qui n'ont pas d'émulation Vim ni de plugins. Je remarque que la touche esc est devenue mon ennemi en dehors de vim.

J'ai trouvé plusieurs émulateurs pour vi dans Visual Studio:

http://code.google.com/p/vim-visual-studio/


4

Tout d'abord, une bonne connaissance de vi (m) vous permettra d'économiser du temps pour effectuer une édition d'urgence des fichiers de configuration sur un serveur sous siège. Il peut tenir sur une connexion ssh retardée.

Si vous l'utilisez efficacement avec un clavier ergonomique, la méthode de saisie de Vim sera la meilleure défense contre le tunnel carpien.

La meilleure façon de voir le point de Vim est de démarrer un projet décontracté à la maison, de débrancher votre souris et de coller sur vos touches fléchées.

Et lisez l'aide


4
Je trouve également que le modèle d'entrée Vi est parfait pour se défendre contre le syndrome du canal carpien ...
CMS

Touches directionnelles? essayez dans votre .vimrc: map <up> <nop> map <down> <nop> map <left> <nop> map <right> <nop> imap <up> <nop> imap <down> <nop> imap < left> <nop> imap <right> <nop>
sjas

1
Je voudrais juste souligner qu'il y en a nanoqui est tellement plus facile à utiliser que vim et qui est presque aussi répandu.
MightyPork

4

Deux avantages de vi / vim:

  • il est très léger

  • il est installé sur presque tous les systèmes * NIX


8
pourquoi avez-vous mis * au lieu de U?
Kamran Bigdely

4
@kami: un peu tard, mais c'est
parti

Vim est-il vraiment "très léger" par rapport à la plupart des autres éditeurs de texte?
Ben

4

Je maintiens un très gros projet Linux sur l'ordinateur distant. Il n'y a pas de choix pour utiliser Eclipse ou un IDE GTK similaire. J'y travaille depuis 3 ans. Et je mets mon vim juste pour ce projet. Et peaufiner toujours.

Maintenant, je peux faire n'importe quoi depuis le Vim: contrôle de code source, sql, débogage, compilation, navigation - navigation très rapide sur le code source de 1 Go.

Visual Studio ou Eclipse ne pouvaient pas gérer tout cela. Et si j'avais le choix, je ne changerais pas Vim en un autre éditeur ou IDE.


4

J'ai appris Vim. Ce n'était pas trop d'efforts. Maintenant j'adore absolument ci "ci (cw V: s / from / to / g


3

Je dirais que Vim vaut vraiment la peine d'être appris. Je l'ai récupéré l'été dernier, et c'est maintenant mon éditeur de choix pour à peu près tout (java est un tronçon, mais faisable lorsque je n'ai pas besoin d'un support d'analyse approfondi). Comme tout le monde l'a déjà affirmé, c'est un outil merveilleusement efficace.

Pour ce que ça vaut, j'ai seulement appris un assez petit sous-ensemble des fonctionnalités de vim (qui a pris un jour ou deux) à partir d'un tutoriel graphique , et quelques bricoles d' ici (longue lecture), et la fonctionnalité de recherche et remplacement, et j'ai a été accroché. J'ai appris des choses depuis, mais à loisir. Je dirais que la courbe d'apprentissage s'aplatit à ce stade, mais ensuite, je l'utilisais assez fortement et j'étais entourée par d'autres qui l'étaient aussi.


3

Je suis dans la même situation que vous, et en tant que débutant pour Vim, je l'ai trouvé un peu intimidant à l'origine - la courbe d'apprentissage semble abrupte. D'après ce que j'ai appris en quelques heures, j'ai déjà l'impression de ne pas pouvoir vivre sans.

Voici sont un peu des liens que j'ai trouvé pour screencasts utiles pour vous Vim montrer ce qu'il est capable de faire .

Un bon conseil que Bram Moolenaar (dictateur bienveillant de Vim) a donné dans ce dernier lien est qu'il serait inefficace d'essayer d'apprendre chaque commande et fonction, il suffit de comprendre ce que vous faites qui n'est pas fonctionne très bien, cherchez un moyen de le rendre plus efficace, puis faites-en une habitude.


3

Oui, prenez définitivement le temps d'apprendre au moins un peu de «vi» et de «vim». Ça voyage très bien.

Vous ne serez jamais bloqué lorsque vous serez confronté à un système Unix / Linux / Mac client pour lequel vous n'avez pas de capacités d'installation. Même sous Windows (si vous avez des capacités d'installation), 'Vim' est gratuit et facile à installer. (Par opposition à investir votre courbe d'apprentissage uniquement dans quelque chose comme UltraEdit, qui bien qu'un excellent éditeur ne soit pas toujours disponible pour vous tout le temps ...).

L'apprentissage vi peut vous préparer à apprendre d'autres outils comme «sed» et regex en général: des trucs qui sont généralement transférables.

De plus, si vous voulez être un vrai geek, il vous suffit de connaître 'vi / m' ou vous ressemblerez à un faux ;-)


2

Je pense que ça vaut vraiment le temps et l'effort d'apprendre Vim. Pour moi, cela rend la saisie et la navigation autour du texte si efficaces, il est difficile d'imaginer revenir à des combos emacs ou ctrl / shift / alt / meta key.

Ne vous laissez pas intimider par toutes les fonctionnalités sophistiquées de vim. Une fois que vous l'avez suffisamment utilisé, vous découvrirez quelles commandes vous utilisez le plus et vous saurez quelles choses vous pouvez oublier.


2

L'ubiquité étonnante de Vim, et l'ubiquité encore plus étonnante des clones Vi en général, sur les systèmes Unix seuls suffisent pour que cela vaille la peine d'être appris.

En plus de cela, toute la pensée de style Vi est quelque chose qui, selon moi, m'a rendu un peu plus productif. Pour une personne qui n'est pas 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, quand on utilise Vim depuis quelques mois et a appris pas mal de trucs et astuces, Vim semble être un atout qui semble en valoir la peine.

Bien sûr, la foule Emacs dit la même chose à propos de la pensée de style Emacs, mais j'ai abandonné l'apprentissage d'Emacs parce que Vim était plus simple et faisait le travail pour moi.


2

J'ai appris à aimer vi après avoir vu quelqu'un qui était très habile avec lui naviguer pour effectuer des modifications dans un clip incroyablement rapide. Vous pouvez vraiment coder rapidement avec. Une autre raison pour laquelle j'aime cela est que parfois je trouve que le fait de se déplacer dans un IDE me fait vraiment mal aux mains après un certain temps et vi fournit un bon changement. 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 minables.

Une chose que je n'ai pas vue mentionnée est que la connaissance de vi a l'avantage supplémentaire de "geek cred" dans certains cercles. Je peux penser à au moins quelques personnes qui rient quand ils voient un nouveau programmeur lancer Nedit pour apporter des modifications à un fichier.


2

Ne soyez pas effrayé par le nombre de commandes, je n'ai rencontré personne qui en utilise plus de quelques dizaines. Je le trouve indispensable, parce que quand je pense au code, je pense au texte, passer à penser aux souris me dérange. Les gros trucs, je pense, sont de l'apprendre un peu à la fois, et n'hésitez pas à jouer - les fonctionnalités d'annulation sont idéales pour explorer ses comportements.

De plus, si vous y pénétrez profondément, vim est scriptable. Les possibilités sont littéralement infinies.

(Oui, tout cela s'applique aussi aux emacs ...)


2

J'étais content de mon textpad et de mon monde ecplise jusqu'à ce que je doive commencer à travailler avec des serveurs fonctionnant sous Linux. Des scripts à distance et la mise en place de fichiers de configuration étaient nécessaires!

C'était difficile au début, mais maintenant je peux facilement configurer et régler mes serveurs.


2

Vous voudrez peut-être apprendre vim car vous pourriez ne pas être 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 fournirai une raison supplémentaire pour apprendre vim. Il est réputé pour la qualité et l'exhaustivité de ses documents. Ainsi, vous trouverez la plupart des réponses à vos questions dans son système d'aide dès que vous réussirez à coller les mots clés appropriés dans vos requêtes d'aide.


2

Pour apprendre vi (m) rapidement, il faut d'abord comprendre l'ensemble du design. Vim a un grand ensemble de commandes de déplacement du curseur, vérifiez-en quelques-unes (X est un caractère, # un chiffre):

jk entrez les flèches 0 $ w W b B ctrolD crtolU ctrolE ctrolY HML fX FX tX TX,; % gg G n N mX 'X' '

et bien d'autres, il serait ennuyeux d'énumérer. Beaucoup d'entre eux prennent en charge un dé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 de curseur et la commande s'applique au morceau de texte de la position du curseur jusqu'à la fin du mouvement. Par exemple, H se déplace vers le haut de l'écran, dH supprime vers le haut de l'écran et cH change (remplace) vers le haut de l'écran.

Cette conception est assez puissante. Il réduit également ou organise ce que vous devez apprendre. En définitive, 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.


2

Apprendre quelque chose de nouveau en vaut toujours la peine, à mon humble avis. Je vous suggère d'imprimer une feuille de triche et de vous forcer à l'utiliser jour après jour.


Il y a une histoire en chinois disant que quelqu'un apprend à un maître comment massacrer des dragons. Une fois diplômé de ses études, il ne peut jamais trouver de vrais dragons à boucher. Je ne dis pas vi, mais c'est la morale de cette histoire que parfois apprendre quelque chose n'est qu'une perte de temps.
Earth Engine

2

Vim vaut vraiment la peine d'apprendre à résumer en partie ce qui a été dit précédemment, voici les principales raisons:

  • Vi / Vim peut être trouvé sur la plupart des systèmes Unix.
  • Vim vous permet de coder facilement sans retirer vos mains du clavier.
  • Si vous prévoyez de configurer quoi que ce soit dans un système basé sur Unix, vous allez probablement modifier quelques fichiers de configuration, vous voudrez donc apprendre un éditeur basé sur terminal, dont vim est l'un des meilleurs (désolé emacs).
  • Vim compile / a précompilé des binaires pour presque tous les systèmes d'exploitation. Pas besoin de poster "J'ai besoin d'une alternative textmate pour [insérer OS]", vous aurez Vim à la place!
  • Il existe de nombreux bons plugins pour ajouter beaucoup de fonctionnalités, tels que les différences de CV dans l'éditeur, bien que certains d'entre eux nécessitent une bonne quantité de bricolage.

En outre, si vous aimez les liaisons 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


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.