Bruke Vim For Go Development

som programmerer bruker du mye tid på å bruke tekstredigerere, Ideer osv. Så det er viktig hva og hvordan du bruker det. Jeg har nylig flyttet Til Vim For Go development, og jeg elsker det helt. I utgangspunktet brukte Jeg VSCode Med Go-utvidelse, og etter det brukte Jeg GoLand en stund. Visual Studio Code og GoLand begge er helt fantastisk, jeg elsket å bruke dem også. Det tar definitivt litt tid å lære å bruke vim, men det er verdt læringen. Det er helt opp til deg hva som fungerer best for deg. Ikke bruk vim bare fordi andre bruker det. Jeg er veldig mye en nybegynner til vim og ting jeg skal forklare i dette er det jeg lærte etter at jeg begynte å bruke den. Jeg ville være veldig glad hvis du er en lang Tid Vim bruker og har noen gode råd/forslag. Du kan sette dem i kommentarfeltet i dette innlegget. Hvis du er nybegynner, vil jeg sette noen gode ressurser for å lære vim nederst i dette innlegget.

MERK: dette innlegget er opprinnelig lagt ut på https://jogendra.dev.

Hvorfor bruker folk Vim?

  • Vim er garantert å eksistere på Alle Unix-systemer (i utgangspunktet er den tilgjengelig på alle større plattformer). Det er overalt, og det er det samme på alle plattformer. Vim støtter alle filformater og programmeringsspråk, trenger ikke å laste ned ulike Ideer for ulike programmeringsspråk.
  • Mus gratis navigasjon. Fingrene dine må sjelden forlate hjemmet, noe som betyr at du kan redigere tekst veldig, veldig raskt. Du kan gjøre nøkkel kartlegging i henhold til din bekvemmelighet. Ikke å måtte bytte mellom tastatur og mus er definitivt fint med Vim.
  • Vim er veldig lett og rask. Vim kan enkelt håndtere store filer, Men Visual Studio eller andre IDE kunne ikke håndtere dem jevnt. Prøv å åpne en stor fil (~20mb) med din favoritt ikke-vim tekstredigerer og vim, du vil definitivt bli kjent med forskjellen. Det er stor makt i måten Vim håndterer filer (buffere), splitter (windows) og layouter (faner), kraften du ikke kan få i andre redaktører.
  • Vim og vim som tekstredigerere (emacs, nano, etc) føler og ser så innfødt ut, ingen distraksjon. Jeg trenger ikke å bytte mellom terminalen og redaktør/IDE. Det er bare rett og slett alt på ett sted. Det er ganske enkelt å være produktiv i vim med liten innsats.
  • Vim er veldig nyttig når du må gjøre rask konfigurering eller andre endringer i den eksterne maskinen/serveren. Selv på din egen maskin, vil du ikke åpne en tung tekstredigerer for liten endring.
  • Vim er svært konfigurerbar. Du kan ganske enkelt bruke ~/.vimrc for å overstyre standardkonfigurasjoner og tilpasse din. Vim plugins gir alt til vim som du trenger i en tekstredigerer. Autofullfør, syntaksutheving eller annen funksjon du heter den, og den er tilgjengelig, du trenger bare riktig plugin.
  • Å Bruke vim er morsomt. Det er litt utfordrende å bruke i utgangspunktet, men det blir morsomt når du blir vant til det.

La oss GÅ!

i dette innlegget vil vi utforske å sette Opp Vim som en fullverdig IDE For Go-utvikling. Plugins vi skal bruke er:

  • vim-go: gå utvikling plugin For Vim. Den har alt Du trenger For Go utvikling.
  • NERDTree – filsystem explorer For Vim. Den lar deg visuelt bla komplekse katalog hierarkier, raskt åpne filer for lesing eller redigering, og utføre grunnleggende filsystem operasjoner.

🔌 Vim-Go

Vim-Go er den mest populære og mest brukte vim plugin For Go utvikling. Det tilbyr nesten alle funksjonene du trenger. Noen av dem er:

  • Kompilere pakken med :GoBuild, installere den med :GoInstall eller teste den med :GoTest.
  • kjør raskt din nåværende fil(er) med :GoRun.
  • syntaksutheving og folding.
  • Autofullføring støtte via gopls.
  • Kjør gofmt og goimports på lagre. Betyr at du ikke trenger å bekymre deg for å importere pakker og kodeformatering, vim-go vil gjøre det for deg når du lagrer filen.
  • Gå til symbol/declaration med :GoDef og slå opp dokumentasjon med :GoDoc eller :GoDocBrowser.
  • Sjekk kode dekning, gjør kode linting etc.

du kan sjekke alle funksjonene som tilbys av vim-go her.

Installere vim-go

Vim 8 lagt innfødt støtte for pakker som betyr at du kan laste plugins ved å bare klone innholdet i katalogen ~/.vim. For å installere vim-go, kan du bare kjøre kommando:

git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
Gå inn i fullskjermmodus Avslutt fullskjermmodus

Du må også installere alle nødvendige binærfiler. vim-go gjør det enkelt å installere dem alle ved å gi en kommando, :GoInstallBinaries, som vil go get alle nødvendige binærfiler.

Eller du kan sette plugin i din ~/.vimrc.

call plug#begin()Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }call plug#end()
Gå inn i fullskjermmodus Avslutt fullskjermmodus

lagre nå .vimrc og installer pluginet ved å kjøre vim +PlugInstall. Det vil installere vim-go plugin med alle nødvendige binærfiler.

jeg har lagt til følgende vim-go-relaterte direktiver til min .vimrc, for å gjøre det mer nyttig:

du kan besøke offisielle tutorials for dine egne tilpasninger. Komplette vim-go-dokumenter er tilgjengelige i vim-editoren din, du kan bare kjøre :help vim-go for å sjekke dem ut. Slik ser min vim etter Et Go-program etter installasjon og konfigurering av vim-go:

Vakker?

Automatisk Fullføring

det er veldig vanskelig å kode uten automatisk fullføring og ikke å kunne gå til definisjonen. Vim-go kan bruke gopls for ferdigstillelse etc. Fullføring er aktivert som standard via omnifunc. Mens du er i INSERT – modus, kan du utløse ferdigstillelse med Ctrl-x Ctrl-p. Hvis matchende navn blir funnet, åpnes en popup-meny som kan navigeres ved hjelp av tastene Ctrl-n og Ctrl-p.
for å sjekke om vim-go ‘ s ftplugin/go.vim er riktig konfigurert for autofullføring, kan du kjøre:

:verbose setlocal omnifunc?
Gå inn i fullskjermmodus Avslutt fullskjermmodus

Meldingen nedenfor skal vises:

hvis du vil at autofullfør-meldingen skal vises automatisk når du trykker på prikken (.), kan du legge til følgende linje i .vimrc:

au filetype go inoremap <buffer> . .<C-x><C-o>
Gå inn i fullskjermmodus Avslutt fullskjermmodus

nå, skrive bør tilby auto forslag sammen med dokumentasjon forhåndsvisninger. Det skal se slik ut:

Bortsett fra vim-go-ferdigstillelse, er det noen gode plugins som du kan bruke til automatisk fullføring og ANDRE lsp-funksjoner. Noen av dem er:

  • coc.nvim( Conquer Av Ferdigstillelse): Intellisense motor For Vim8 & Neovim, full språk server protokoll støtte Som VSCode.
  • LanguageClient-neovim: Minimal Språk Server Protokoll klient skrevet I Rust.
  • YouCompleteMe: Kode-ferdigstillelse motor. Den har flere fullføringsmotorer.

Language Server Protocol (Lsp) og gopls

Language Server Protocol brukes mellom et verktøy (klienten) og en language smartness-leverandør (serveren) for å integrere funksjoner som autofullføring, gå til definisjon, finn alle referanser og like i verktøyet. Målet med protokollen er å tillate programmeringsspråkstøtte som skal implementeres og distribueres uavhengig av en gitt redaktør ELLER IDE. Språkserverprotokollen ble opprinnelig utviklet For Microsofts Visual Studio Code og er nå en åpen standard. Microsoft samarbeidet Med Red Hat Og Codenvy for å standardisere protokollens spesifikasjon.

Før LSP pleide det å være forskjellige Ideer for forskjellige språk(fortsatt er det mange). Hver Ide hadde språkspesifikk integrasjon(syntax highlighting, auto-fullføring, gå til definisjon, etc funksjoner). Situasjonen blir ofte referert Til Som Et M × N-problem, hvor antall integrasjoner er produktet Av m-redaktører og N-språk. Hva Språkserverprotokollen gjør, er å endre Dette M × n-problemet til Et m + N-problem. Beste MED LSP er, det er helt uavhengig Av Ide. Som et resultat kan Vi se At Visual Studio fungerer for så mange forskjellige språk via utvidelser. Disse utvidelsene gjør BRUK AV LSP.

du kan lese mer OM LSP her og hennes Eller se Denne YouTube-videoen for å se hvordan DET fungerer.

Offisiell Språkserver For Golang er gopls (uttales: «gå, vær så snill»). Du kan sjekke mer informasjon om status for gopls og dens støttede funksjoner.

🔌 NERDTree

etter å ha satt opp mange ting i Vim, er en ting du sannsynligvis fortsatt mangler mest, «Sidevindu» hvor du enkelt kan bla gjennom prosjektfilene dine. NERDTree fikk deg der. NERDTree er en fullverdig filsystem explorer, som bidrar til å visuelt bla gjennom filene dine ved hjelp av et tre-stil sidevindu. Med NERDTree kan du raskt åpne filer for lesing eller redigering, og utføre grunnleggende filsystemoperasjoner.

Installasjon Og Oppsett

du kan installere NERDTree samme Som vim-go og coc.nvim. Bare legg til Plug 'preservim/nerdtree' til .vimrc og kjør :PlugInstall eller kjør vim +PlugInstall fra kommandolinjen.

videre kan du sjekke wiki FAQs For oppsett. Mine oppsett For NERDTree ligner på:

Du kan åpne en katalog i vim ved hjelp av vim . (ligner på code . For VSCode). Du kan bytte Mellom NERDTree og koden din ved å bruke CTRL+ww eller CTRL+w+ArrowKey. NERDTree har innebygd dokumentasjon, kan du sjekke dem ved å trykke ? når Du er I NERDTree vindu.

Slik ser Mitt Vim-oppsett ut med NERDTree:

Du kan se på mine .vimrc og vim skript på GitHub på jogendra / dotfiles / vim.

Her er noen lenker som hjelper deg med å komme i gang med Vim:

  • OpenVim-Interaktive Vim Tutorials
  • Beste Vim Tips Av Fandom
  • Hvorfor, oh HVORFOR, gjør de nutheads bruke vi?
  • Samling av vim artikler av thoughtbot
  • spf13-vim-Den Ultimate Vim Distribusjon
  • Vim Cheatsheet
  • Vim Tab Madness. Buffere vs Faner

du kan bare kjøre vimtutor i kommandolinjen ved å kjøre vimtutor kommando. Det vil åpne Opp Vim tutorials og hjelpe deg i gang med det.

Bunnlinjer

Å Bruke vim er morsomt. I utgangspunktet kan du møte noen problemer med å bruke det, og du må kanskje lære å bruke det, men det er definitivt verdt å lære det. I det minste kan du fortsette å lære vim ved siden av Å bruke EN IDE. Start med minimum og bygg litt på det hver dag. Det er mange plugins tilgjengelig for alt du trenger med Vim. Bruke vim For Golang utvikling er super fin med vim-go plugin. Er det ikke fint å ha alt på ett sted og være mer produktiv?

Takk for at du leste. Del med dine kolleger / venner. Du kan nå ut til Meg På Twitter.



+