Une introduction à Vim pour les personnes qui utilisent Visual Studio Code

Conseils utiles pour apporter la génialité de Visual Studio Code à Vim.

Front-Matière

Je veux commencer par dire, ce n'est pas un article de la honte. Vous pouvez utiliser l'éditeur de texte de votre choix. Cela n'a vraiment pas d'importance. J'écris ceci uniquement parce que j'ai trouvé un niveau de productivité dans Vim que je n'ai eu dans aucun des éditeurs que j'ai utilisés auparavant (Sublime Text, Atom ou VSCode).

Si vous avez entendu parler de Vim et que vous souhaitez l'essayer, j'espère que cet article pourra vous donner un peu de familiarité avec VSCode.

Pourquoi Vim?

Il y a de nombreuses raisons d'utiliser Vim, voici donc quelques-unes des miennes.

Gardez vos mains à 10 et 2

Lorsque vous utilisez uniquement le clavier, il y aura une augmentation de vitesse inhérente simplement parce que vous n'avez pas à bouger physiquement vos mains. Et bon, peut-être que vous êtes une ceinture noire dans le mouvement de la souris, et vous pouvez vous déplacer d'avant en arrière avec une vitesse invisible à l'œil nu. Pour le reste d'entre nous, simples humains, cela prend du temps.

Faisons quelques calculs rapides.

Il faut 600 ms pour déplacer ma main des «touches d'accueil» vers la souris. En moyenne, par souci d'argumentation, je fais cela une fois par minute pendant que j'écris du code. Que ce soit pour faire défiler, accéder à un nouveau fichier ou quelque chose de similaire.

600 (temps perdu en ms) x 60 (fois par heure) x 5 (heures que je codifie réellement) = 180000 ms gaspillés =

3 minutes. Chaque. Journée.

Ouais, d'accord, peut-être que cela ne sonne pas si mal, mais ces 3 minutes pourraient être consacrées à écrire une fonction, ou à refactoriser du code, sans agiter la main comme si tu étais Harry Potter!

La vitesse

Ma citation préférée qui décrit ce que c'est que de coder dans VIM:

"Codez à la vitesse de la pensée"

Vim est construit autour de l'idée que vous communiquez directement avec votre ordinateur. Vous lui dites ce que vous voulez et il le fait pour vous. La plus grande révélation pour moi a été cette petite friandise:

Pour tout supprimer entre deux objets (parenthèses, guillemets, etc.), c'est aussi simple que:

di'

Ce n'est que la surface des choses étonnantes que vous pouvez faire avec Vim.

Je suis un vrai programmeur!

Une partie du parcours d'apprentissage de VIM consiste à vous exposer au fonctionnement d'UNIX. J'ai l'impression que plus vous vous exposez à des choses comme bash, meilleur vous serez programmeur.

Il y a de fortes chances que vous ayez une configuration de ligne de commande assez douce. Ne serait-il pas agréable que votre éditeur de code et votre ligne de commande fonctionnent de concert?

Comment quittez-vous Vim?

Il est probable que vous ayez déjà édité un fichier sur un serveur Linux et que vous ne parveniez pas à trouver comment quitter le fichier. Disons, par exemple, changer une clé SSH sur Digital Ocean. Si vous connaissez VIM… vous n'avez pas à vous en soucier!

La vraie raison pour laquelle je suis passé à Vim

L'honnêteté. Le véritable catalyseur pour vouloir passer à Vim a été de regarder Kyle Mathews (créateur de Gatsby.js) l'utiliser lors d'une démo.

Fonctionnalités VS Code et leurs équivalents

Convaincu? Cool, voici quelques outils!

Système de plugins

Vim en lui-même est assez simple. Afin d'ajouter des plugins, nous devons avoir un mécanisme pour les gérer. Entrez la prise:

junegunn / vim-plug

Remarque: il existe quelques gestionnaires de plugins. J'ai atterri sur Plug sans raison particulière. Je l'aime, et je n'ai eu aucun problème avec. FYI, Vundle est obsolète.

Recherche de fichier

Il y a eu un tas de solutions pour la recherche de fichiers au fil des ans, comme l'indique la multitude de réponses dans les forums. J'en ai essayé plusieurs, mais j'ai atterri sur cette combinaison:

Fuzzy Finder (fzf) + Ripgrep

Fzf est une recherche floue vraiment bien construite / maintenue qui fonctionne à la fois en ligne de commande et en vim.

Remarque: Vous pouvez voir Ag (Silver searcher) dans de nombreux articles, mais le plugin vim lié à Ag n'est plus maintenu, il est donc suggéré d'utiliser RipGrep.

Intellisense

Le système d'auto-complétion (Intellisense) dans VSCode est sans doute sa meilleure fonctionnalité. Heureusement pour nous, il a été porté sur Vim!

neoclide / coc.nvim

CoC a son propre système d'extension, qui reflète celui des VSCodes. Il est facile à utiliser et bien documenté (la partie la plus importante).

Remarque: vous pouvez voir de vieux articles parlant de YouCompleteMe, mais pour autant que je sache, cela n'est plus maintenu.

Explorateur de système de fichiers

VSCode, comme la plupart des éditeurs de texte modernes, est livré avec un explorateur de fichiers. Le natif de Vim netrwest bien, et j'ai vu pas mal d'articles disant que vous n'avez besoin de rien d'autre, comme ici. Cependant, je trouve que NERDTree est trop utile pour ne pas être utilisé.

scrooloose / nerdtree

Intégration Git

Je dois être honnête ici, je fais la plupart de mes trucs git directement dans Iterm. Cependant, VSCode a un écran partagé Git Diff incroyablement agréable. Pour obtenir ce niveau d'intégration git, consultez ce plugin:

tpope / vim-fugitif

Plugins supplémentaires que vous voudrez peut-être

C'est une partie de ce que j'ai utilisé dans Visual Studio Code, que je voulais intégrer dans Vim.

Brackets de saisie semi-automatique

Ce joli petit paquet fermera automatiquement ces accolades embêtantes.

jiangmiao / paires automatiques

Icônes de fichier

Cela ajoutera des icônes à des trucs comme NERDTree.

ryanoasis / vim-devicons

Plus jolie

Ne le sauriez-vous pas, mais la plus jolie équipe officielle a un plugin vim. Comme c'est gentil! En outre, incroyablement simple à configurer.

plus jolie / vim-plus jolie

Faites-le fonctionner sur la sauvegarde automatique, consultez cet article.

Extraits

Ne le sauriez-vous pas, en utilisant la conquête de l'achèvement, vous pouvez importer des extraits de code VSCode!

Vérifiez ceci pour vous montrer comment faire cela:

neoclide / coc.nvim

Voici le package d'extraits de code React que j'utilise.

xabikos / vscode-react

Trucs supplémentaires

LA maison pour les plugins Vim est Vim Awesome.

Vim génial

Super endroit pour regarder les gens utiliser Vim:

Vimcasts - Screencasts gratuits sur l'éditeur de texte Vim

Dotfiles

J'ai quelques clés remappées pour faciliter les choses. Consultez mes fichiers dotfiles pour tout cela.

DarthOstrich / dotfiles

Dernières pensées

Mon voyage

J'utilise uniquement Vim maintenant, après avoir passé environ un an à l'apprendre. Au départ, je ne l'utilisais que pour mes projets personnels, car mon niveau de productivité était faible. Je devais continuer à m'arrêter pour chercher comment faire quelque chose. Cependant, j'ai complètement abandonné VSCode il y a environ 4 mois et je n'ai pas l'intention d'y retourner.

Il faut de la discipline

Apprendre Vim peut sembler intimidant, et franchement, c'est le cas. Cela nécessite une discipline auto-imposée. Cependant, tout n'est-il pas en développement? Il n'y a aucun outil / langage / cadre que j'ai jamais appris qui n'exige pas un certain niveau de pratique délibérée.

Vim est un choix de style de vie. Il faudra un certain temps pour s'y habituer, et ce sera parfois frustrant. Cependant, si vous vous y tenez, je vous garantis que cela améliorera votre flux de travail. Si vous avez des conseils ou des questions supplémentaires, veuillez les déposer ci-dessous. Comme toujours, bon codage!

Ressources supplémentaires pour l'apprentissage

Maîtriser Vim rapidement - Jovica Ilic

8 astuces Vim qui vous mèneront du débutant à l'expert

Références

Passer à Vim

10 astuces Linux simples qui me font gagner 50% de mon temps en ligne de commande