Als u Vim gebruikt voor Go-ontwikkeling

als programmeur, besteedt u veel tijd aan het gebruiken van tekstverwerkers, IDEs, enz.om te coderen. Het is dus belangrijk wat en hoe je het gebruikt. Ik ben onlangs verhuisd naar Vim voor Go ontwikkeling en ik ben helemaal dol op het. Aanvankelijk, ik was met behulp van VSCode met GO extensie en daarna, Ik gebruikte GoLand voor een tijdje. Visual Studio Code en GoLand beide zijn totaal geweldig, Ik hield van het gebruik van hen ook. Het kost zeker wat tijd om te leren met behulp van vim, maar het is de moeite waard het leren. Het is helemaal aan jou wat beter voor jou werkt. Gebruik vim niet alleen omdat anderen het gebruiken. Ik ben heel erg een beginner om vim en dingen die ik ga uitleggen in dit is wat ik geleerd nadat ik begon met het te gebruiken. Ik zou echt blij zijn als je een lange tijd vim-gebruiker bent en een aantal goede adviezen/suggesties hebt. U kunt ze in de commentaar sectie van dit bericht. Als je een beginner, Ik zal een aantal goede middelen voor het leren vim aan de onderkant van dit bericht.

Opmerking: Dit bericht is oorspronkelijk geplaatst op https://jogendra.dev.

waarom gebruiken mensen Vim?

  • Vim is gegarandeerd aanwezig op alle Unix systemen (in principe is het beschikbaar op elk belangrijk platform). Het is overal, en het is hetzelfde op alle platforms. Vim ondersteunt alle bestandsformaten en programmeertalen, geen behoefte om verschillende IDEs voor verschillende programmeertalen te downloaden.
  • muisvrije navigatie. Je vingers hoeven heel zelden de thuisrij te verlaten, wat betekent dat je tekst heel, heel snel kunt bewerken. U kunt key mapping doen volgens uw gemak. Niet hoeven te schakelen tussen toetsenbord en muis is zeker leuk met Vim.
  • Vim is zeer licht van gewicht en snel. Vim kan gemakkelijk grote bestanden verwerken, maar Visual Studio of andere IDE kon ze niet soepel verwerken. Probeer het openen van een groot bestand (~20MB) met uw favoriete niet-vim teksteditor en vim, zult u zeker krijgen om het verschil te weten. Er is grote kracht in de manier waarop Vim omgaat met bestanden (buffers), splits (windows), en lay-outs (tabs), de kracht die je niet kunt krijgen in andere editors.
  • Vim en vim zoals tekstverwerkers (emacs, nano, enz.) voelen en zien er zo native uit, geen afleiding. Ik hoef niet te schakelen tussen de terminal en editor/IDE. Het is gewoon alles op één plek. Het is vrij gemakkelijk om productief te zijn in vim met weinig inspanning.
  • Vim is erg handig als u snel configuraties of andere wijzigingen moet aanbrengen op de externe machine/server. Zelfs op uw eigen machine, zult u niet een zware teksteditor voor kleine verandering te openen.
  • Vim is zeer configureerbaar. U kunt ~/.vimrc gewoon gebruiken om standaard configuraties te overschrijven en de uwe te personaliseren. Vim plugins bieden alles aan vim die u nodig hebt in een teksteditor. Autocomplete, syntaxis highlighting, of een andere functie die je het noemt en het is beschikbaar, je hoeft alleen maar de juiste plug-in.
  • het gebruik van vim is leuk. Het is een beetje uitdagend om in eerste instantie te gebruiken, maar het wordt leuk als je er eenmaal aan gewend bent.

laten we gaan!

in deze post zullen we het opzetten van Vim onderzoeken als een volwaardige IDE voor Go-ontwikkeling. Plugins die we gaan gebruiken zijn:

  • vim-go: Go-ontwikkelplugin voor Vim. Het heeft alles wat je nodig hebt voor Go-ontwikkeling.
  • NERDTree – File system explorer voor de Vim. Het stelt u in staat om visueel te bladeren complexe directory hiërarchieën, snel bestanden te openen voor het lezen of bewerken, en het uitvoeren van eenvoudige bestandssysteem operaties.

🔌 Vim-Go

Vim-Go is de meest populaire en meest gebruikte vim-plugin voor Go-ontwikkeling. Het biedt bijna alle functies die u nodig heeft. Sommigen van hen zijn:

  • compileer uw pakket met :GoBuild, installeer het met :GoInstall of test het met :GoTest.
  • Voer snel uw huidige bestand (en) uit met :GoRun.
  • syntaxismarkering en vouwen.
  • ondersteuning voor automatische aanvulling via gopls.
  • voer gofmt en goimports uit bij opslaan. Betekent, u hoeft zich geen zorgen te maken over het importeren van pakketten en code-opmaak, vim-go zal dat voor u doen bij het opslaan van het bestand.
  • Ga naar symbool / declaratie met :GoDef en zoek documentatie op met :GoDoc of :GoDocBrowser.
  • codedekking controleren, codelinten enz.

u kunt alle functies van vim-go hier bekijken.

Vim-go

installeren Vim 8 heeft native ondersteuning toegevoegd voor pakketten, wat betekent dat u plugins kunt laden door gewoon de inhoud ervan in uw ~/.vim map te klonen. Om vim-go te installeren, kunt u eenvoudig commando uitvoeren:

git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
volledig scherm openen Volledig scherm verlaten

u zult ook alle benodigde binaire bestanden moeten installeren. vim-go maakt het eenvoudig om ze allemaal te installeren door een commando te geven, :GoInstallBinaries, dat go get alle benodigde binaire bestanden zal bevatten.

of u kunt de plugin in uw ~/.vimrcplaatsen.

call plug#begin()Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }call plug#end()
volledig scherm openen Volledig scherm verlaten

Sla nu de .vimrc op en installeer de plugin door vim +PlugInstalluit te voeren. Het zal vim-go plugin installeren met alle benodigde binaries.

ik heb de volgende vim-go-gerelateerde richtlijnen toegevoegd aan mijn .vimrc, om het nuttiger te maken:

u kunt Officiële tutorials bezoeken voor uw eigen aanpassingen. Volledige vim-go-documentaties zijn beschikbaar in uw vim-editor, U kunt gewoon :help vim-go uitvoeren om ze uit te checken. Zo zoekt mijn vim naar een Go-programma na het installeren en configureren van vim-go:

mooi?

Auto Completion

het is echt moeilijk om te coderen zonder auto-completion en niet in staat om naar de definitie te gaan. Vim-go kan gopls gebruiken voor voltooiing etc. Voltooiing is standaard ingeschakeld via omnifunc. Terwijl u in de INSERT – modus bent, kunt u voltooiing activeren met Ctrl-x Ctrl-p. Als overeenkomende namen worden gevonden, wordt een pop-up menu geopend dat kan worden genavigeerd met de Ctrl-n en Ctrl-p toetsen.
om te controleren of vim-go ‘ s ftplugin/go.vim correct is geconfigureerd voor Automatisch aanvullen, kunt u uitvoeren:

:verbose setlocal omnifunc?
volledig scherm openen Volledig scherm verlaten

bericht hieronder zou moeten verschijnen:

als u wilt dat de prompt automatisch wordt weergegeven wanneer u op de punt (.) drukt, kunt u de volgende regel toevoegen aan uw .vimrc:

au filetype go inoremap <buffer> . .<C-x><C-o>
volledig scherm openen Volledig scherm verlaten

nu, typen moet bieden auto suggesties samen met documentatie previews. Het zou er ongeveer zo moeten uitzien.:

afgezien van Vim-go voltooiing, er een aantal goede plugins die u kunt gebruiken voor auto-voltooiing en andere LSP-functies. Sommigen van hen zijn:

  • coc.nvim (Conquer of Completion): Intellisense engine voor Vim8 & Neovim, volledige taal server protocol ondersteuning als VSCode.
  • LanguageClient-neovim: Minimal Language Server Protocol client geschreven in Rust.
  • Ucompleteme: code-completion engine. Het heeft verschillende voltooiingsmotoren.

Language Server Protocol (LSP) en gopls

het Language Server Protocol wordt gebruikt tussen een tool (de client) en een language smartness provider (de server) om functies zoals Automatisch aanvullen, ga naar definitie, Zoek alle referenties en dergelijke in het tool te integreren. Het doel van het protocol is om programmeertaal ondersteuning te implementeren en te verspreiden onafhankelijk van een bepaalde editor of IDE. Het Language Server Protocol werd oorspronkelijk ontwikkeld voor Microsoft ‘ s Visual Studio Code en is nu een open standaard. Microsoft werkte samen met Red Hat en Codenvy om de specificatie van het protocol te standaardiseren.

voor LSP waren er verschillende ID ‘ s voor verschillende talen (er zijn er nog steeds veel). Elke IDEs had taalspecifieke integratie (syntaxis highlighting, auto-completion, going to definition, etc features). De situatie wordt vaak aangeduid als een M × N probleem, waar het aantal integraties is het product van M editors en N talen. Wat het Language Server Protocol doet is dit M × N probleem veranderen in een M + N probleem. Het beste van LSP is dat het volledig onafhankelijk is van IDEs. Als gevolg hiervan kunnen we zien dat Visual Studio werkt voor zoveel verschillende talen via extensies. Deze extensies maken gebruik van LSP.

u kunt meer lezen over LSP hier en haar of bekijk deze YouTube video om te zien hoe het werkt.

officiële Taalserver voor Golang is gopls (uitgesproken: “ga alsjeblieft”). U kunt meer informatie over de status van gopl ‘ s en de ondersteunde functies controleren.

Ner NERDTree

na het opzetten van een heleboel dingen in uw Vim, een ding dat je waarschijnlijk nog steeds het meest ontbreekt is “Side Window” waar u gemakkelijk door uw projectbestanden kunt bladeren. NERDTree heeft je daar. NERDTree is een volwaardige File System explorer, die helpt om visueel bladeren door uw bestanden met behulp van een boom-stijl zijvenster. Met NERDTree kunt u snel bestanden openen om te lezen of te bewerken en basisbewerkingen van het bestandssysteem uitvoeren.

installatie en instellingen

u kunt NERDTree installeren zoals vim-go en coc.nvim. Voeg gewoon Plug 'preservim/nerdtree' toe aan .vimrc en voer :PlugInstall uit of voer vim +PlugInstall uit vanaf de opdrachtregel.

verder kunt u Veelgestelde vragen over wiki ‘ s voor instellingen afrekenen. Mijn setups voor NERDTree is vergelijkbaar met:

u kunt een map in vim Openen met vim . (vergelijkbaar met code . voor VSCode). U kunt schakelen tussen NERDTree en uw code met CTRL+ww of CTRL+w+ArrowKey. NERDTree heeft ingebouwde documentatie, U kunt ze controleren door op ? te drukken wanneer u zich in het NERDTree-venster bevindt.

zo ziet mijn vim-setup eruit met NERDTree:

je kunt een kijkje nemen op mijn .vimrc en vim scripts op GitHub bij jogendra/dotfiles / vim.

hier zijn enkele links die u zullen helpen aan de slag te gaan met Vim:

  • OpenVim-interactieve Vim Tutorials
  • beste Vim Tips van Fandom
  • Waarom, oh waarom, gebruiken die nutheads vi?
  • verzameling Vim-artikelen door thoughtbot
  • spf13-vim – The Ultimate Vim Distribution
  • Vim Cheatsheet
  • Vim Tab Madness. Buffers vs Tabs

u kunt eenvoudig vimtutor in uw opdrachtregel uitvoeren door het commando vimtutor uit te voeren. Het zal openen vim tutorials en u helpen om te beginnen met het.

onderste regels

het gebruik van vim is leuk. In eerste instantie, kunt u geconfronteerd met een probleem met behulp van het en je kan hebben om te leren hoe het te gebruiken, maar het is zeker de moeite waard om het te leren. In ieder geval kunt u doorgaan met het leren van vim naast het gebruik van een IDE. Begin met het minimum en bouw er elke dag een beetje op. Er zijn veel plugins beschikbaar voor alles wat je nodig hebt met Vim. Het gebruik van vim voor Golang ontwikkeling is super leuk met vim-go plugin. Is het niet fijn om alles op één plek te hebben en productiever te zijn?

Bedankt voor het lezen. Doe delen met uw collega ‘ s/vrienden. Je kunt me bereiken op Twitter.



+