En introduktion til Vim for folk, der bruger Visual Studio-kode

Hot tips til at bringe Visual Studio-koden til Vim.

Front-Matter

Jeg vil starte med at sige, dette er ikke en redaktør-skam artikel. Du kan bruge den ønskede teksteditor. Det betyder virkelig ikke noget. Jeg skriver kun dette, fordi jeg fandt et produktivitetsniveau i Vim, som jeg ikke har haft i nogen af ​​de redaktører, jeg har brugt før (Sublime Text, Atom eller VSCode).

Hvis du har hørt om Vim og vil prøve det, håber jeg, at denne artikel kan give en smule fortrolighed, du finder fra VSCode.

Hvorfor Vim?

Der er mange grunde til at bruge Vim, så her er et par af mine.

Hold dine hænder på 10 og 2

Når du udelukkende bruger tastaturet, vil der være en iboende hastighedsforøgelse bare fra ikke at skulle bevæge dine hænder fysisk. Og hej, måske er du et sort bælte i musebevægelse, og du kan bevæge dig fremad med en hastighed, der er usynlig for det blotte øje. For resten af ​​os enkle mennesker tager det tid.

Lad os lave en hurtig matematik.

Det tager 600 ms at flytte min hånd fra "hjemmetasterne" til musen. I gennemsnit gør jeg det for argumentets skyld en gang i minuttet, mens jeg skriver kode. Uanset om det er at rulle, navigere til en ny fil eller noget lignende.

600 (spildt tid i ms) x 60 (gange i timen) x 5 (timer jeg koder faktisk) = 180.000 ms spildt =

3. Protokol. Hver. Dag.

Ja, okay, måske lyder det ikke så dårligt, men disse 3 minutter kan bruges til at skrive en funktion eller omlægning af kode, uden at svinge din hånd om, at du er Harry Potter!

Hastighed

Mit foretrukne citat, der beskriver, hvordan det er at kode i VIM:

“Kode ved tankens hastighed”

Vim er bygget op omkring ideen om, at du kommunikerer direkte med din computer. Du fortæller det, hvad du vil, og det gør det for dig. Den største øjenåbner for mig var denne lille godbid:

For at slette alt mellem to objekter (parenteser, citater osv.) Er det så simpelt som:

di'

Det er bare overfladen af ​​fantastiske stenografiske ting, du kan gøre med Vim.

Jeg er en rigtig programmør!

En del af rejsen til at lære VIM er at udsætte dig for, hvordan UNIX fungerer. Jeg er under det indtryk, at jo mere du udsætter dig for ting som bash, jo bedre programmerer bliver du.

Chancerne er, at du har en ret sød kommandolinjekonfiguration. Ville det ikke være rart, hvis din kodeditor og din kommandolinje fungerede sammen?

Hvordan afslutter du Vim?

Sandsynligheden er stor for, at du nogensinde har redigeret en fil på en Linux-server og ikke kunne finde ud af, hvordan du afslutter filen. Lad os sige for eksempel at ændre en SSH-nøgle på Digital Ocean. Hvis du kender VIM ... behøver du ikke bekymre dig om det!

Den virkelige grund til, at jeg skiftede til Vim

Ærlighedstid. Den virkelige katalysator for at ville skifte til Vim var at se Kyle Mathews (skaberen af ​​Gatsby.js) bruge det under en demo.

VS-kodefunktioner og deres ækvivalenter

Overbevist? Sejt, her er nogle værktøjer!

Plugin-system

Vim i sig selv er smukke barebones. For at tilføje plugins er vi nødt til at have en mekanisme til at styre dem. Indtast stik:

junegunn / vim-plug

Bemærk: Der er et par plugin-ledere derude. Jeg landede på Plug uden særlig grund. Jeg kan lide det, og jeg har ikke haft nogen problemer med det. FYI, Vundle er udfaset.

Filsøgning

Der har været en masse løsninger til filsøgning gennem årene, som det fremgår af de mange svar i fora. Jeg prøvede et par forskellige, men landede på denne kombination:

Fuzzy Finder (fzf) + Ripgrep

Fzf er en rigtig godt bygget / vedligeholdt fuzzy søgning, der fungerer i både kommandolinjen og vim.

Bemærk: Du kan muligvis se Ag (Silver searcher) i mange artikler, men det Ag-relaterede vim-plugin opretholdes ikke længere, så det anbefales at bruge RipGrep.

Intellisense

Systemet til automatisk udfyldelse (Intellisense) i VSCode er uden tvivl det bedste element. Heldig for os, det er blevet overført til Vim!

neoclide / coc.nvim

CoC har sit eget udvidelsessystem, der afspejler VSCodes. Det er let at bruge og veldokumenteret (den vigtigste del).

Bemærk: Du kan muligvis se nogle gamle artikler, der taler om YouCompleteMe, men så vidt jeg kan se, opretholdes det ikke længere.

File System Explorer

VSCode, som de fleste moderne teksteditorer, leveres med en filudforsker. Vims indfødte netrwer okay, og jeg har set en hel del artikler, der siger, at du ikke har brug for noget andet, som her. Jeg finder dog NERDTree er for nyttigt til ikke at bruge.

scrooloose / nerdtree

Git integration

Jeg må være ærlig her, jeg laver de fleste af mine ting lige i Iterm. VSCode har dog en utrolig flot Git Diff-delt skærm. For at få det niveau af git-integration skal du tjekke dette plugin:

tpope / vim-flygtig

Yderligere plugins, som du måske vil have

Dette er nogle af de ting, jeg brugte i Visual Studio Code, som jeg ønskede at bringe til Vim.

Autofuldfør beslag

Denne pæne lille pakke lukker automatisk disse irriterende parenteser.

jiangmiao / auto-par

Filikoner

Dette tilføjer ikoner til ting som NERDTree.

ryanoasis / vim-devicons

Pænere

Ville du ikke vide det, men det officielle smukkere hold har et vim-plugin. Hvor fint! Også utrolig let at konfigurere.

pænere / vim-pænere

Få det til at arbejde med autosave, se denne artikel.

Stykker

Ville du ikke vide det, ved hjælp af Conquer of Completion, kan du importere VSCode-uddrag!

Tjek dette for at vise dig, hvordan du gør det:

neoclide / coc.nvim

Her er den React-uddragspakke, jeg bruger.

xabikos / vscode-react

Yderligere ting

Hjemmet til Vim-plugins er Vim Awesome.

Vim Awesome

Fantastisk sted at se folk bruge Vim:

Vimcasts - Gratis screencasts om teksteditoren Vim

Dotfiles

Jeg har et par gentilknyttede nøgler for at gøre tingene lettere. Tjek mine dotfiles for alle dem.

DarthOstrich / dotfiles

Afsluttende tanker

Min rejse

Jeg bruger udelukkende Vim nu efter at have brugt et år på at lære det. Oprindeligt brugte jeg det kun til mine personlige projekter, fordi mit produktivitetsniveau var lavt. Jeg var nødt til at holde op med at kigge op for, hvordan jeg gjorde noget. Jeg droppede dog VSCode helt for ca. 4 måneder siden, og jeg planlægger ikke at vende tilbage.

Det kræver disciplin

At lære Vim kan virke skræmmende, og ærligt talt er det. Det kræver selvpålagt disciplin. Men er ikke alt under udvikling? Der er intet værktøj / sprog / ramme, jeg nogensinde har lært, og som ikke krævede en vis grad af bevidst praksis.

Vim er et livsstilsvalg. Det vil tage et stykke tid at vænne sig til det, og det vil til tider være frustrerende. Men hvis du holder dig til det, garanterer jeg, at det forbedrer din arbejdsgang. Hvis du har yderligere tip eller spørgsmål, bedes du slippe dem nedenfor. Som altid glædelig kodning!

Yderligere ressourcer til læring

Mastering Vim hurtigt - Jovica Ilic

8 Vim-tricks, der tager dig fra begynder til ekspert

Referencer

Skift til Vim

10 enkle Linux-tip, der sparer 50% af min tid på kommandolinjen