
Comme tout développeur, vous évoluez constamment. Vous apprenez de nouvelles technologies en lisant des livres, en regardant des leçons en ligne, en suivant des cours, etc. Vous savez que si vous cessez d'apprendre, vous devenez non compétitif. Mais avez-vous déjà pensé à vos performances? Comment améliorez-vous cela? Si vous ne savez pas comment répondre, bienvenue sous la coupe.
Niveau 0 - Conquérir la peur
Saisie tactile
Ce message ne concerne pas la saisie tactile . Néanmoins, c'est la première réponse à la question ci-dessus. Pour comprendre le reste de cet article, vous devez gérer la saisie tactile.
Vim intro

Dans cet article, je vous dirai comment améliorer votre vitesse de codage, comment naviguer plus rapidement dans le code et comment vous débarrasser de votre souris d'ordinateur. Nous parlerons de VIM (le meilleur éditeur de texte connu du genre humain). Entre des mains peu habiles, ce n'est qu'un éditeur de texte maladroit, et personne ne sait comment en sortir. Mais en réalité, c'est un éditeur de texte hautement configurable (ou un plugin pour presque n'importe quel IDE) qui est conçu pour vous permettre de gérer votre code de la manière la plus efficace. VIM n'est pas seulement un éditeur de texte. Pour ne pas paraître fou, mais imaginez que vous ne codez pas, vous parlez avec un ordinateur. Ainsi, votre processus de codage peut être construit dans le monologue suivant:
- ici, je vais taper:
string text = file.ReadAll();
- créer une ligne vide au-dessus de celle-ci
- déplacer toutes les lignes avec des commentaires
TODO
à la fin de ce fichier - accédez à la fonction
GetDirectoryFiles
et copiez tout son contenu - accédez à cette instruction "if" et remplacez son contenu par le texte du tampon
- centrer cette ligne au milieu de l'écran
Mais si vous voulez danser, vous devez payer le joueur de flûte. Pour "parler" avec VIM, vous devez apprendre la langue qui a ses propres noms, verbes, adjectifs, etc. C'est pourquoi VIM n'a pas de raccourcis, il a des phrases (par exemple changer la balise intérieure) . Lorsque vous apprendrez les bases de cette langue, vous pourrez combiner vos propres phrases en fonction de ce que vous allez faire. Ensuite, vous comprendrez que vous n'avez plus besoin de votre souris.
Il n'est pas facile de commencer à apprendre cette langue car tous ses composants devraient devenir votre habitude. Et c'est un défi douloureux qui peut prendre au moins 2 semaines, alors réfléchissez bien avant de commencer. Mais si vous le surmontez, vous ouvrirez un nouveau monde de gestion de votre code.
Le principal avantage de la saisie rapide des données n'est pas le temps gagné en saisie de données par seconde, mais l'augmentation des chances que vos mains puissent suivre votre cerveau.
Niveau 1 - Survivre
La caractéristique la plus distinctive de VIM est qu'il a des modes. Nous pouvons définir les quatre principaux d'entre eux:
- Mode normal - ici, vous pouvez taper des commandes de texte et faire de la navigation. Pour entrer dans ce mode, appuyez sur
ESC
- Mode d' insertion - dans ce mode, vous pouvez taper du texte comme dans d'autres éditeurs. Pour entrer dans ce mode, appuyez sur
i
- Mode visuel - ici, vous pouvez sélectionner du texte. Pour entrer dans ce mode, appuyez sur
v
- Mode commande - commandes de l'éditeur (comme enregistrer, ouvrir, etc.) . Pour entrer dans ce mode, appuyez sur
:
De plus, vous devez apprendre la navigation de base qui fonctionne en mode normal. Oubliez les flèches car elles sont lentes à travailler. Lorsque vous tapez, vos doigts sont généralement placés au milieu de votre clavier. Main gauche sur asdf et main droite sur jkl; . Et généralement, vous naviguez dans votre code vers le haut / bas et rarement vers la gauche / droite (nous parlerons plus tard de la navigation dans la ligne). La navigation dans VIM est donc la suivante:
- bas -
j
(ressemble à une flèche vers le bas) - haut -
k
- gauche -
h
- droite -
l
Pour vous habituer au mouvement de base, vous pouvez jouer au jeu VIM Adventures . En fait, c'est tout ce que vous devez savoir pour commencer. Alors, installez le plugin vim sur votre IDE préféré et entraînez-vous. Gardez à l'esprit que ça va être difficile.

Niveau 2 - Confiance
Ok, vous avez décidé d'apprendre VIM et c'est génial. Assurons-nous que vous le faites correctement. Vos doigts se sont habitués à la navigation hjkl
et vous savez également comment changer de mode de l'un à l'autre. Si c'est vrai, alors vous êtes prêt.
Obtenir le mode d'insertion
Vous savez que vous pouvez accéder à ce mode en appuyant sur i
sur un clavier. Imaginons que i
signifie insérer comme texte d'insertion avant le curseur. Vous pouvez également appuyer sur a
qui signifie ajouter comme ajouter du texte après le curseur. Il est facile d'intensifier ces commandes en changeant la casse, donc le résultat serait le suivant: j'insère du texte avant le premier non vide de la ligne et A
ajoute du texte à la fin de la ligne actuelle.
Pour rendre votre travail futur plus agréable, vous devez connaître la commande o
qui ajoute une nouvelle ligne vierge après le courant et O
qui fait de même mais avant la ligne actuelle.
Ce sont les commandes de changement de mode d'insertion les plus utilisées dans VIM. Si vous vous adaptez à la navigation hjkl
il vous faudra quelques jours pour vous habituer à ces commandes. Plus vous transpirez à l'entraînement, moins vous saignez pendant la guerre.
Mode normal
Avant de commencer à apprendre le langage VIM, nous devons également améliorer nos compétences en navigation. Dans cette question, la commande f
(pour trouver ) nous aidera. Cette commande est utilisée pour naviguer dans la ligne actuelle. Vous tapez f
et une lettre vers laquelle vous souhaitez déplacer le curseur. fP
déplace le curseur de la position actuelle à la première occurrence de la lettre P. Vous pouvez activer cette commande sur F
qui fait de même mais change le sens de la recherche.
Langue Vim
Il est maintenant temps de devenir un geek fou. Vous devez "parler" avec VIM en mode normal. Tout d'abord, considérons quelques constructions du langage VIM:
Noms:
w
- mot
s
- phrase
p
- paragraphe
b
- (bloc / parenthèses)
t
- tag
{
, }
, (
, )
, [
, ]
- accolades
"
, '
- citations
Verbes:
v
- visualiserc
- changer (supprimer le texte et basculer VIM en mode insertion )d
- supprimer et copier (supprimer le texte et ne change pas le mode VIM)y
- yank (signifie copie)
Adverbes:
i
- à l'intérieura
- autourt
- jusqu'àf
- jusqu'à (inclus)
Faites attention à ce que ces commandes ne fonctionnent pas toutes seules comme vous vous y attendez. De plus, lorsque vous créez une phrase VIM, cela devrait être suffisant et toutes les constructions devraient être à leur place, sinon vous obtiendrez un autre résultat. Maintenant, créons des phrases VIM simples comme exemple:
ciw
- change inside word - supprime le mot entier sous le curseur et passe en mode insertion, contrairement à cw
qui supprime un mot du curseur jusqu'à la fin de ce mot.cis
- change à l'intérieur de la phrase.ci"
- change inside" accolade - supprime tout le texte entre "accolades.da}
- supprimer autour} accolade - supprime tout le texte à l'intérieur des accolades, y compris les.vip
- visuel à l'intérieur du paragraphe - sélectionne tous les paragraphes.ctp
- changer jusqu'à p - supprimer tout d'ici à la lettre p .

Pour étendre votre langage VIM dès maintenant, je vous suggère d'apprendre une nouvelle construction VIM - modificateur de nombre. Prenons le code suivant:
function foo() { function bar() {
Et vous voulez supprimer tout le code à l'intérieur de {} de la fonction foo
. En utilisant le modificateur de nombre, c'est facile à faire. Tapez simplement 2ci{
- changez à l'intérieur des accolades 2 fois.

Le modificateur de nombre fonctionne non seulement dans les phrases mais il fonctionne presque partout:
5j
- déplace le curseur vers le bas 5 fois.2fK
- déplace le curseur sur la deuxième occurrence de la portée k dans la ligne.2iHello <ESC>
- insérez Hello
2 fois.
Soyez persévérant
Au fur et à mesure que vous apprenez le VIM, vous trouverez de nouvelles constructions de langage et développez votre langage VIM. Jour après jour, il serait plus facile de «parler» avec VIM. Toutes les commandes et constructions de langage sont étroitement couplées et créées pour maximiser vos performances, et cela est prouvé par plus de 20 ans d'existence de VIM.
Niveau 3 - Mastering
Vous êtes en passe de devenir maître VIM. Comme vous pouvez le constater, ce n'est pas si facile d'apprendre VIM. Lorsque vous ressentez le pouvoir entre vos mains en utilisant VIM, vous voudrez quelque chose de plus et c'est ce dont cette partie fait partie. Tous les sujets sont découverts superficiellement afin de vous permettre de décider ce que vous voulez.
VIM n'est pas un IDE
Oui, VIM n'est pas un IDE malgré le fait que vous pouvez le configurer pour exécuter presque toutes les fonctions IDE . Je suis sûr que vous ne quitterez pas votre Visual Studio ou WebStorm préféré et c'est pourquoi j'ai préparé la liste des plugins pour votre IDE et pas seulement.
- VSVim pour VisualStudio
- VS VIM pour VSCode
- IdeaVim pour WebStorm, IntelliJ IDEA (et autres produits Jetbrains)
- Le texte sublime a le mode Vintage hors de la boîte
- Mode Vim pour l'atome
- XVim pour Xcode
- Hardcore! Ne répétez pas cela à la maison! Google Chrome possède également des extensions pour la navigation de type VIM. (trouvez-le dans le Chrome Store)
Cependant, vous devez garder à l'esprit que les performances maximales peuvent être obtenues en utilisant uniquement VIM. Fondamentalement, il convient aux petits projets js / html / css, éditant des fichiers de configuration ou simplement en remplacement de votre bloc-notes ++ :)
Plugins Vim
VIM a des milliers de plugins pour tout caprice. Ici, vous pouvez trouver presque tout ce que vous voulez, de l'explorateur de fichiers et de l'intégration de git aux systèmes de construction.
Un de mes plugins préférés est EasyMotion . Il a été créé pour accélérer votre navigation dans VIM. EasyMotion est très sophistiqué et profondément intégré dans la philosophie VIM. Par exemple, si vous souhaitez simplement naviguer vers une ligne spécifique derrière la ligne actuelle, vous pouvez le faire en appuyant plusieurs fois sur la touche j
. En comparaison, avec EasyMotion, vous pouvez appuyer sur la touche leader (dans mon cas TAB
) et j
pour mettre en surbrillance toutes les lignes derrière avec des lettres différentes. Il ne vous reste plus qu'à appuyer sur la lettre qui représente la ligne dont vous avez besoin.

Dans mon cas, j'ai appuyé sur la touche TAB
et ju
pour naviguer jusqu'à la ligne appropriée. C'était l'exemple le plus simple et comme d'habitude, dans le monde de VIM, vous pouvez créer presque n'importe quelle commande selon vos besoins.
Mappages
Cette fonctionnalité, j'ai décidé d'envisager séparément. Vous pouvez penser au mappage comme des liaisons clés pour tous les modes. Autrement dit, vous pouvez lier un modèle pour effectuer certaines actions dans différents modes.
Examinons donc l'exemple simple et réel. Presque chaque personne qui travaille dans VIM ne change pas le mode d'insertion en normal en appuyant sur ESC
. Nous le faisons en appuyant sur jj
ou jk
car nous avons le mapping :imap jj
< ESC
> suivant. imap
signifie mappage en mode insertion et signifie qu'il ne fonctionne qu'en mode insertion.
Vous pouvez cartographier tout ce que vous voulez faire et cela vous fera gagner du temps à l'avenir. En savoir plus sur la cartographie ici .
Fonctionnalités Vim
Il y a beaucoup de choses à apprendre dans VIM en plus des fonctionnalités mentionnées ci-dessus. Vous devriez certainement faire attention à la liste suivante:
- commandes globales
- rechercher et remplacer
- macros et registres
- tampons
- onglets
- retraits et pliages
- autocommandes
Ils peuvent exister dans d'autres outils de développement, mais c'est VIM. Jour après jour, vous vous demanderez à quel point toutes ces choses sont brillantes. Vérifiez-le pour vous en assurer.
La configuration
Il existe de nombreux paramètres VIM qui doivent être stockés quelque part afin d'utiliser les mêmes paramètres pour tous les éditeurs avec le plug-in VIM. Et c'est la responsabilité du fichier .vimrc. Par défaut, dans Windows 10, ce fichier se trouve dans C:\Users\%username%
. Ici, vous pouvez configurer tous les mappages, commandes automatiques, plug-ins, jeu de couleurs et tous les autres paramètres. J'ai trouvé un assez bon article sur la façon de configurer votre propre fichier .vimrc afin que vous puissiez vous entraîner par vous-même.
Remarque: ne mettez aucune ligne dans votre .vimrc que vous ne comprenez pas
Super cours VIM:

Que le VIM soit avec vous.