Sfaturi fierbinți pentru a aduce minunatul cod Visual Studio la Vim.

Front-Matter

Vreau să încep prin a spune că acesta nu este un articol de rușine pentru editor. Puteți utiliza orice editor de text doriți. Chiar nu contează. Scriu asta doar pentru că am găsit un nivel de productivitate în Vim pe care nu l-am mai avut în niciunul dintre editorii pe care i-am folosit înainte (Sublime Text, Atom sau VSCode).

Dacă ați auzit despre Vim și doriți să-l încercați, sper că acest articol vă poate oferi un pic de familiaritate pe care o veți găsi de la VSCode.


De ce Vim?

Există o mulțime de motive pentru a folosi Vim, așa că iată câteva dintre ale mele.

Țineți mâinile la 10 și 2


ad-banner

Când utilizați exclusiv tastatura, va exista o creștere inerentă a vitezei doar de la faptul că nu trebuie să vă mișcați fizic mâinile. Și hei, poate că ești o centură neagră în mișcare a mouse-ului și te poți deplasa înapoi cu o viteză invizibilă cu ochiul liber. Pentru noi ceilalți oameni simpli, este nevoie de timp.

Să facem câteva calcule rapide.


Durează 600 de metri pentru a mișca mâna de la „tastele de acasă” la mouse. În medie, din motive de argumentare, fac asta o dată pe minut în timp ce scriu cod. Indiferent dacă este vorba de derulare, navigați la un fișier nou sau ceva similar.

600 (timp pierdut în ms) x 60 (ori pe oră) x 5 (ore de fapt codific) = 180.000ms irosit =

3 minute. Fiecare. Zi.

Da, bine, poate că asta nu sună atât de rău, dar, cele 3 minute ar putea fi petrecute scriind o funcție sau cod refactorizare, fără să-ți arunci mâna ca și cum ai fi Harry Potter!

Viteză

Bine, deci poate că 65 nu mai este chiar atât de rapid, dar hei, acesta a fost 1994!

Citatul meu preferat care descrie cum este să codezi în VIM:

„Cod la viteza gândirii”

Vim este construit în jurul ideii că comunicați direct cu computerul. Îi spui ce vrei și o face pentru tine. Cel mai mare deschizător de ochi pentru mine a fost acest mic sfat:

Pentru a șterge totul dintre două obiecte (paranteze, ghilimele etc.), este la fel de simplu ca:

di'

O introducere in Vim pentru persoanele care folosesc codul Visual
Computer: Ștergeți, din interior, ghilimelele unice.

Aceasta este doar suprafața lucrurilor uimitoare de stenografie pe care le puteți face cu Vim.

Sunt un adevărat programator!


O parte din călătoria de învățare VIM se expune la modul în care funcționează UNIX. Am impresia că cu cât te expui mai mult la lucruri precum bash, the mai bun programator vei fi.

Șansele sunt, aveți o configurare destul de dulce pe linia de comandă. Nu ar fi frumos dacă editorul de cod și linia de comandă ar funcționa concertat?

Cum ieși din Vim?

Probabilitatea este mare că ați editat vreodată un fișier pe un server Linux și nu ați putut afla cum să ieșiți din fișier. Să presupunem, de exemplu, schimbarea unei chei SSH pe Digital Ocean. Dacă știi VIM … nu trebuie să-ți faci griji pentru asta!

Adevăratul motiv pentru care am trecut la Vim

Timp de onestitate. Adevăratul catalizator pentru dorința de a trece la Vim a fost urmărirea lui Kyle Mathews (creatorul Gatsby.js) folosindu-l în timpul unei demonstrații.

M-ai prins.

Caracteristicile codului VS și echivalentele acestora

Convins? Mișto, iată câteva instrumente!

Sistem de plugin

Vim de la sine este destul de barebones. Pentru a adăuga pluginuri, trebuie să avem un mecanism pentru a le gestiona. Introduceți fișa:

junegunn / vim-plug

Notă: Există câțiva manageri de pluginuri acolo. Am aterizat pe Plug fără niciun motiv special. Îmi place și nu am avut probleme. FYI, Vundle este învechit.

De-a lungul anilor au existat o grămadă de soluții pentru căutarea fișierelor, după cum indică multitudinea de răspunsuri pe forumuri. Am încercat câteva diferite, dar am ajuns la această combinație:

Fuzzy Finder (fzf) + Ripgrep

1611664985 871 O introducere in Vim pentru persoanele care folosesc codul Visual
Căutare neclară pentru „temă”

Fzf este o căutare fuzzy foarte bine construită / întreținută, care funcționează atât în ​​linia de comandă, cât și în vim.

Notă: este posibil să vedeți Ag (Silver searcher) în multe articole, totuși pluginul vim legat de Ag nu mai este menținut, deci este sugerat să utilizați RipGrep.

Intellisense

Sistemul de completare automată (Intellisense) din VSCode este, fără îndoială, cea mai bună caracteristică a sa. Noroc pentru noi, a fost portat la Vim!

neoclide / coc.nvim

1611664986 544 O introducere in Vim pentru persoanele care folosesc codul Visual
completare automată pentru importul unei funcții scrise într-un alt fișier în React

CoC are propriul sistem de extensie, care reflectă cel al codurilor VSC. Este ușor de utilizat și bine documentat (cea mai importantă parte).

Notă: este posibil să vedeți câteva articole vechi vorbind despre YouCompleteMe, dar, din câte îmi dau seama, acest lucru nu mai este menținut.

File System Explorer

VSCode, la fel ca majoritatea editorilor de text moderni, vine cu un explorator de fișiere. Nativul lui Vim netrw este în regulă și am văzut destul de multe articole spunând că nu mai aveți nevoie de altceva aici. Cu toate acestea, consider că NERDTree este prea util pentru a nu fi folosit.

scrooloose / nerdtree

Integrarea Git

Trebuie să fiu sincer aici, fac cele mai multe lucruri git direct în Iterm. Cu toate acestea, VSCode are un ecran divizat Git Diff incredibil de frumos. Pentru a obține acel nivel de integrare git, consultați acest plugin:

tpope / vim-fugitiv

1611664986 581 O introducere in Vim pentru persoanele care folosesc codul Visual

Pluginuri suplimentare pe care le-ați dori

Acestea sunt câteva dintre lucrurile pe care le-am folosit în Visual Studio Code, pe care am vrut să le aduc în Vim.

Completați automat paranteze

Acest mic pachet drăguț va închide automat acele paranteze plictisitoare.

jiangmiao / auto-perechi

Icoane de fișiere

Aceasta va adăuga pictograme la lucruri precum NERDTree.

Ryanoasis / vim-devicons

Mai frumoasă

Nu l-ați ști, dar echipa oficială mai drăguță are un plugin vim. Ce drăguț! De asemenea, incredibil de simplu de configurat.

mai frumos / vim-mai frumos

Puneți-l să funcționeze la salvarea automată, verificați Acest articol.

Fragmente

Nu l-ați ști, folosind Conquer of Completion, puteți importa fragmente VSCode!

Verificați acest lucru pentru a vă arăta cum să faceți acest lucru:

neoclide / coc.nvim

Iată pachetul de fragmente React pe care îl folosesc.

xabikos / vscode-react

Lucruri suplimentare

CASA pentru pluginurile Vim este Vim Awesome.

Vim Awesome

Un loc minunat pentru a vedea oamenii folosind Vim:

Vimcasts – Screencasts gratuite despre editorul de text Vim

Dotfiles

Am câteva chei remapate pentru a ușura lucrurile. Consultați fișierele mele dot pentru toate acestea.

DarthOstrich / dotfiles

Gânduri finale

Călătoria mea

Eu folosesc Vim doar acum, după ce am petrecut aproximativ un an să-l învăț. La început, îl foloseam doar pentru proiectele mele personale, deoarece nivelul meu de productivitate era scăzut. A trebuit să mă opresc în continuare pentru a căuta cum să fac ceva. Cu toate acestea, am renunțat complet la VSCode acum aproximativ 4 luni și nu intenționez să mă întorc.

Este nevoie de disciplină

Învățarea Vim poate părea descurajantă și, sincer, așa este. Necesită disciplină autoimpusă. Cu toate acestea, nu totul este în dezvoltare? Nu am învățat vreodată un instrument / limbaj / cadru care să nu necesite un anumit nivel de practică în mod deliberat.

Vim este o alegere de stil de viață. Va dura ceva timp să te obișnuiești și uneori va fi frustrant. Cu toate acestea, dacă vă țineți de el, vă garantez că vă va îmbunătăți fluxul de lucru. Dacă aveți sfaturi sau întrebări suplimentare, vă rugăm să le lăsați mai jos. Ca întotdeauna, codificare fericită!


Resurse suplimentare pentru învățare

Mastering Vim Quick – Jovica Ilic

8 trucuri Vim care te vor duce de la începător la expert

Referințe

Trecerea la Vim

10 sfaturi simple Linux care îmi economisesc 50% din timpul meu în linia de comandă