Devenir meilleur à Vim [fermé]


116

J'utilise Vim depuis assez longtemps, mais je suis à un niveau où j'utilise le mode insertion la plupart du temps, et j'utilise toujours les touches fléchées pour me déplacer (!).

J'ai l'impression de ne pas tirer le meilleur parti de mon charmant éditeur, en particulier en ce qui concerne la navigation (en particulier le code), le copier-coller et d'autres manipulations de code existant. (bien que je sois assez à l'aise avec les modèles de recherche / remplacement compliqués).

  • Comment devrais-je en apprendre davantage?
  • Quelles ressources les gens recommanderaient-ils?

8
Quel est le problème avec l'utilisation des touches fléchées pour se déplacer? C'est ce qu'ils sont pour !
Vilx-

39
@Vilx, vous ne bougez pas avec les touches fléchées même dans les jeux d'action sur ordinateur ! Sans parler des éditeurs de texte ...
P Shved

6
@Vilx: Les touches fléchées d'un clavier sont dans un endroit horriblement gênant pour toute navigation. C'est pourquoi le canon de ViM consiste à utiliser HJKL, tout comme vous utiliseriez WASD dans un jeu à la première personne.
Will Vousden

4
Le WASD est là car il est plus facile de l'utiliser avec la main gauche, puisque la droite contrôle la souris. Les gauchers utilisent les flèches. Et HJKL est tellement contre-intuitif. Lequel se déplace où?
Vilx-

8
Eh bien, je pense qu'il ne s'agit pas de "flèches vs hjkl" mais de "mouvement du curseur vs objets texte".
Matteo Riva

Réponses:



66

Voici quelques screencasts impressionnants qui devraient vous donner une idée de ce qu'il faut apprendre ensuite. Il existe également des vidéos pour les sujets intermédiaires et avancés, mais les novices sont en fait les plus importants.

De plus, quand j'ai senti que je stagnais et que je n'appris pas vraiment "la voie Vim", j'ai choisi de désactiver les touches fléchées en mode normal et en mode insertion. Cela vous oblige à utiliser ESC pour aller quelque part et vous fait penser davantage à Vim. En fin de compte, j'ai à nouveau activé les touches fléchées en mode insertion, mais je ne les utilise presque jamais. Il existe, le plus souvent, de meilleures façons de se déplacer.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

Et particulièrement

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
J'aime l'idée de désactiver les touches fléchées, c'est une belle façon de se forcer à arrêter de les utiliser.
Idan K

1
Cela a très bien fonctionné pour moi, mais les premiers jours ont été extrêmement frustrants. Une fois que vous vous y êtes habitué et que vous avez l'habitude de vous déplacer TROP en mode insertion, je vous recommande de réactiver les images.
Sarah

Ces screencasts étaient géniaux. Merci de l'avoir signalé.
Mert Nuhoglu

2
La désactivation des touches fléchées est une idée géniale, je le fais en ce moment.
gorsky

La désactivation des touches fléchées est basée sur l'hypothèse que les touches fléchées sont plus éloignées que hjkl. Mieux vaut obtenir un meilleur clavier. J'utilise Kinesis Advantage. Même si j'utilisais un clavier standard, hjkl n'a toujours aucun sens puisque j'utilise dvorak. Ce que je veux dire, c'est que le point n'est pas "n'utilisez pas les touches fléchées", le point est "Utilisez les moyens les plus efficaces et ne pas esquiver les gains d'efficacité à cause d'une courbe d'apprentissage."
Expiation limitée le

23
  1. tapez vimtutorsur la ligne de commande
  2. allez dans vim, tapez: help ou <F1>
  3. s'inscrire à la liste de diffusion
  4. documents officiels de vim

1
La seule chose que je n'avais pas envisagée était de rejoindre la liste de diffusion: c'est fait maintenant :)
James

1
c'est un bon endroit pour obtenir de l'aide et mettre en pratique vos compétences vim en résolvant les problèmes des autres.
ghostdog74

1
+1 pour vimtutor - excellent moyen de faire entrer le vim dans votre mémoire musculaire.
Hamish Downer

16

Deux autres conseils:

  • Utilisez Vim pour tout éditer (e-mail, formulaires Web, code, ...). Lorsque quelque chose semble lent, il existe probablement un moyen plus rapide de le faire. :helpgrepest votre ami.

  • Rendez-vous sur http://vimgolf.com/ et participez à la compétition. J'ai appris de nombreux trucs et astuces de cette façon. [ Clause de non-responsabilité: Aucune responsabilité n'est acceptée pour les longues périodes de temps qui "disparaissent" lors de la compétition à VimGolf ].


2
Chouette, je ne connaissais pas vimgolf!
James le

1
@Autopulated: ont ajouté une clause de non-responsabilité.
Johnsyweb

2
@Johnsyweb: Je veux vraiment pouvoir utiliser vim pour tout - mais comment? Obtenir un clone vim approprié dans chaque formulaire Web serait idéal - car tous les modules complémentaires de navigateur que j'ai trouvés n'implémentent généralement qu'un petit sous-ensemble aléatoire de fonctionnalités vim et remappent les raccourcis clavier pour tenir compte du fait que le navigateur a encore besoin accès à certains keymappings.
Conrad.Dean


10

C'est ainsi que j'ai appris Vim (et un tas d'autres choses). C'est assez simple.

Parcourez les documents d'aide et trouvez une commande pour quelque chose que vous faites tout le temps. Supprimez un mot entier par exemple. Assurez-vous de vous en souvenir.

Maintenant, la prochaine fois que vous vous surprendrez à appuyer sur «xxxxx» pour supprimer un mot, arrêtez-vous, remettez-le et utilisez la nouvelle commande. Recherchez-le si vous devez le faire. Donc, au lieu de cliquer sur «xxxxxx», vous revenez en arrière et appuyez sur «dw».

Faites-le encore et encore, ce sera lent au début, mais finalement cela restera.

Une fois que vous avez cette commande, commencez par le haut. Trouvez une autre commande pour une action que vous faites tout le temps ...

Vous seriez surpris de la rapidité avec laquelle vous pouvez acquérir de nouvelles commandes et techniques de cette façon.


7

Remapper / désactiver les touches fléchées comme cela a été suggéré est un excellent moyen de vous forcer à ne pas les utiliser.

Une autre chose à considérer: si appuyer sur Esc sur votre clavier est inconfortable, vous voudrez peut-être remapper Caps Lock sur Esc dans votre système d'exploitation. Pour moi, cela a été une étape extrêmement utile, car Esc est une portée maladroite sur ma KB et c'était un autre obstacle qui m'a gardé en mode Insertion (car il était difficile de sortir). Avoir Esc sur le verrouillage des majuscules en fait une portée minuscule et sauter dans et hors du mode d'insertion est très rapide.

Pour apprendre des choses avancées dans Vim, la meilleure ressource est: l'aide, mais pour obtenir les bases, il vous suffit de le faire; c'est la mémoire musculaire plus que tout. Vous dites que vous connaissez la recherche. Utilisez-le consciemment comme outil de navigation. Les recherches [/,?] Et les recherches basées sur les caractères en ligne [f, F, t, T] sont quelques-uns des principaux outils de navigation de Vim. Utilisez-les simplement; combiné avec les touches de curseur désactivées, vous naviguerez sur la mémoire musculaire seule en un rien de temps.

Objets texte. Facilement l'une des meilleures fonctionnalités de l'éditeur. C'est l'autre chose à pratiquer immédiatement consciemment. Des choses comme «yiw», «dit», etc. sont si puissantes et rapides; apprendre et les utiliser seuls vous fera vous sentir comme un utilisateur de Vim.

Une fois que vous avez les objets texte et la navigation de base vers le bas, il est temps de passer à la lecture et à l'apprentissage de: aidez régulièrement et parcourez le Web à la recherche de plugins géniaux. Sérieusement, vous pouvez utiliser Vim pendant des années et avoir un "ah ha!" moment tombant accidentellement sur une information obscure dans le: une aide que vous n'auriez jamais connue.


Au lieu de remapper en majuscules, je suggérerais Ctrl-C. C'est facile à taper et assez familier aux utilisateurs de Linux.
BandGap

6

Voir ce fil: Quel est votre raccourci le plus productif avec Vim?

Surtout la première réponse.


3
En tant qu'auteur de la "première" réponse, je dois dire, en toute honnêteté, que ce n'est pas forcément le meilleur guide pour améliorer généralement votre maîtrise de l'éditeur. Il couvre beaucoup de terrain sur ce qui peut être fait avec vi lorsque vous le considérez comme un langage pour exprimer les façons dont vous souhaitez manipuler le texte, votre écran / terminal et l'environnement de l'éditeur lui-même. Cependant, beaucoup de choses là-dedans sont assez avancées.
Jim Dennis

1
Je n'ai pas tellement appris en lisant cette réponse que je ne pense pas que j'aurais jamais appris en lisant la documentation!
James


3

Comment devrais-je en apprendre davantage?

Lisez complètement le manuel de vim (tapez :h; vous pouvez naviguer à partir de là). C'est ainsi que vous apprenez à connaître tous les mouvements et commandes. C'est très utile si vous connaissez déjà les bases et que vous souhaitez vous améliorer.

Quelles ressources les gens recommanderaient-ils?

vim.org, parcourez les scripts vim les plus populaires . Vérifiez leurs sources si vous trouvez quelque chose d'intéressant. Ou installez-les simplement et profitez-en. Ce site comprend de nombreux liens vers des scripts qui aident à parcourir le code source dans différentes langues; et il est relativement facile de les trouver là-bas.

StackOverflow.com pourrait également être utile .


3

J'ai créé ce jeu pour aider mon neveu à apprendre, mais il ne fonctionne que sur Firefox et Chrome>. < http://kikuchiyo.org

Pour l'instant, il ne traite que du mouvement et de l'entrée en mode insertion. La version bêta vous permet d'attaquer les ennemis avec le sabre laser, 'i' à gauche et 'a' à droite: P

Continuez à essayer d'apprendre Vim, cela en vaut la peine!

:)


Maintenant , c'est vraiment une bonne idée!
James

Mise à jour: le site est maintenant à kikuchiyos-vim-game.herokuapp.com .
kikuchiyo le


2

J'utilise toujours les touches fléchées pour me déplacer (!).

Je ne vois pas de problème avec cela.

Franchement, quelle est la probabilité que vous ayez à utiliser vim et un clavier sans touches fléchées?

Vous savez, la plupart des gens utilisent vim parce qu'il fait le travail (eh bien, parce qu'ils l'ont maîtrisé à un niveau où il fait le travail pour eux), pas pour être élitistes (comme ne pas utiliser les touches fléchées).

Quelques conseils pour améliorer vos connaissances vim:

  • ouvrez périodiquement l'aide de vim à un endroit aléatoire et lisez une caractéristique aléatoire distincte. Cela vous prendra quelques minutes. Il est possible que vous n'utilisiez pas cette fonctionnalité au cours des X prochaines années. Mais si vous avez de la chance, vous serez dans une situation où vous verrez que vous pouvez appliquer vos connaissances sur cette fonctionnalité pour accomplir une certaine tâche. Vous ouvrirez à nouveau l'aide pour rafraîchir votre mémoire. Après avoir utilisé la fonctionnalité dans la pratique pendant quelques fois, cela restera. À ce stade, vos connaissances Vim seront améliorées.
  • utilisez: helpgrep pour fouiller dans des endroits aléatoires de la documentation. Si vous avez besoin de faire quelque chose et que vous trouvez l'endroit qui l'explique dans la documentation, ne vous arrêtez pas là. Lisez l'extrait de doc une fois de plus. Trouvez les mots-clés. Pour chaque mot-clé, utilisez: mot-clé helpgrep pour découvrir les liens logiques avec d'autres parties de la documentation vim.

Je suppose que le problème que j'ai avec la simple lecture de la documentation est que je trouve que je n'apprends pas les choses très efficacement sans les faire réellement .
James

1
Utiliser les touches de curseur pour déplacer votre curseur sur de courtes distances peut être aussi efficace que d'utiliser les touches [h], [j], [k], [l] ... si vos doigts se trouvent à proximité pour une autre raison. Utiliser des mouvements de curseur linéaires est horrible pour plus de quelques colonnes ou lignes de mouvement. Habituellement, il est préférable de réfléchir à ce que vous recherchez et de l'exprimer directement dans vi en utilisant le / ou? commandes et expressions régulières. Dernier morceau de texte près de foo? G? Foo [Entrée] (six frappes). Première ligne avec "bar ... quelque chose ... bang dedans? 1G / bar. * Bang [Entrée] (environ une douzaine de frappes) ... et ainsi de suite.
Jim Dennis

Bien que les touches fléchées soient probablement plus efficaces que d'atteindre la souris, si vous tapez en utilisant les touches de la ligne d'accueil pour regrouper vos mains après avoir tapé une séquence de caractères, aucun mouvement n'est requis pour entrer l'une des touches de mouvement de base. de «j», «k», «l», et une légère «secousse» vers la gauche pour obtenir la touche «h». Si vous faites les choses de la manière Vim, vos mains doivent toujours être plus proches des touches de la ligne d'accueil que des touches fléchées. Continuez à vous entraîner et vous l'aurez. :)
kikuchiyo


2

la façon dont j'ai arrêté d'utiliser les touches fléchées ne les désactivait pas (je les utilise toujours en mode insertion) mais si vous y réfléchissez si vous voulez aller à droite, utilisez votre petit doigt qui est la lclé, allez à gauche Index sur la htouche, & l'annulaire vers le haut («anneau vers le haut») la kclé et «ramasser» la jclé.

Donc, le premier des quatre chiffres de votre main (oubliez le pouce), l'index est le plus à gauche et le pinky est le plus à droite. Utilisez l'expression «sonnerie vers le haut» comme dans un appel téléphonique pour monter avec votre annulaire et le majeur n'a nulle part ailleurs où aller.

Cela m'aide aussi beaucoup d'oublier le nom des clés (h, j, k, l). Il n'y a pas de bon mnémonique pour les rappeler de cette façon que j'ai trouvé et il n'y a pas trop de mappages utilisant ces touches non plus.





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.