Käyttämällä Vim: ää Go: n kehittämiseen

ohjelmoijana käytät paljon aikaa tekstieditorien, IDE: iden jne.koodaamiseen. On siis tärkeää, mitä ja miten käytät sitä. Olen äskettäin muuttanut Vim Go kehitystä ja olen täysin rakastan sitä. Aluksi, käytin Vscode Go laajennus ja sen jälkeen, käytin GoLand jonkin aikaa. Visual Studio koodi ja GoLand molemmat ovat täysin mahtava, rakastin käyttää niitä liian. Vimin käytön oppiminen vie varmasti jonkin aikaa, mutta se kannattaa opetella. Se on täysin sinusta kiinni, mikä toimii paremmin sinulle. Älä käytä vim-valmistetta vain siksi, että muut käyttävät sitä. Olen hyvin paljon aloittelija vim ja asiat aion selittää tässä on mitä opin, kun aloin käyttää sitä. Olisin todella iloinen, jos olet pitkään vim käyttäjä ja on hyviä neuvoja/ehdotuksia. Voit laittaa ne tämän postauksen kommenttiosioon. Jos olet aloittelija, aion laittaa joitakin hyviä resursseja oppimisen vim alareunassa tämän viestin.

HUOM: Tämä viesti on alun perin lähetetty https://jogendra.dev.

miksi ihmiset käyttävät Vimiä?

  • Vim on taatusti olemassa kaikissa Unix-järjestelmissä (periaatteessa se on saatavilla kaikilla tärkeimmillä alustoilla). Se on kaikkialla ja sama kaikilla alustoilla. Vim tukee kaikkia tiedostomuotoja ja ohjelmointikieliä, ei tarvitse ladata eri IDEs eri ohjelmointikielille.
  • Hiiretön suunnistus. Sormet joutuvat hyvin harvoin poistumaan kotiriviltä, eli tekstiä pystyy muokkaamaan hyvin, hyvin nopeasti. Voit tehdä avaimen kartoitus mukaan mukavuutta. Ei tarvitse vaihtaa näppäimistön ja hiiren on ehdottomasti mukavaa Vim.
  • Vim on erittäin kevyt ja nopea. Vim pystyy käsittelemään helposti suuria tiedostoja, mutta Visual Studio tai muu IDE ei pystynyt käsittelemään niitä sujuvasti. Kokeile avata suuri tiedosto (~20mb) suosikki ei-vim tekstieditori ja vim, saat varmasti tietää eron. On suuri teho tapa Vim käsittelee tiedostoja (Puskurit), splitit (Ikkunat), ja asetteluja (välilehdet), teho, että et voi saada muissa editoreissa.
  • vim ja vim kuten tekstieditorit (emacs, nano jne.) tuntuvat ja näyttävät niin alkuperäisiltä, ei häiriötekijöitä. Minun ei tarvitse vaihtaa päätelaitteen ja editorin/IDE: n välillä. Kaikki on vain yhdessä paikassa. Vimissä on helppo olla tuottelias vähällä vaivalla.
  • Vim on erittäin kätevä, kun etäkoneeseen/ – palvelimeen pitää tehdä nopeasti konfigurointi-tai muita muutoksia. Edes omalla koneella raskasta tekstieditoria ei avata pikkurahalla.
  • Vim on erittäin konfiguroitavissa. Voit yksinkertaisesti käyttää ~/.vimrc ohittaa oletusasetukset ja muokata omasi. Vim-liitännäiset tarjoavat vimille kaiken, mitä tarvitset tekstieditorissa. Automaattinen täydennys, syntaksikorostus tai jokin muu ominaisuus, jonka nimeät ja se on käytettävissä, tarvitset vain oikean laajennuksen.
  • Vimin käyttäminen on hauskaa. Se on hieman haastava käyttää aluksi, mutta siitä tulee hauskaa, kun siihen tottuu.

mennään!

tässä viestissä pohditaan Vimin perustamista täysiveriseksi IDE: ksi Go: n kehittämiseen. Plugins aiomme käyttää ovat:

  • vim-go: Go-kehitysliitännäinen Vimille. Siinä on kaikki mitä tarvitset Go: n kehittämiseen.
  • Nörtree-Vim-tiedostojärjestelmän explorer. Sen avulla voit visuaalisesti selata monimutkaisia hakemistohierarkioita, avata tiedostoja nopeasti lukemista tai muokkausta varten ja suorittaa tiedostojärjestelmän perustoimintoja.

🔌 Vim-Go

Vim-Go on suosituin ja käytetyin Vim-liitännäinen Go: n kehityksessä. Se tarjoaa lähes kaikki ominaisuudet saatat tarvita. Jotkut niistä ovat:

  • kokoa paketti :GoBuild, asenna se :GoInstall tai testaa :GoTest.
  • suorita nykyiset tiedostosi nopeasti arvolla :GoRun.
  • syntaksin korostus ja taittaminen.
  • Automaattitäydennystuki kautta gopls.
  • Juokse gofmt ja goimports pelastettaessa. Tarkoittaa, että sinun ei tarvitse huolehtia pakettien ja koodin muotoilusta, vim-go tekee sen puolestasi tallennettaessa tiedostoa.
  • Siirry symboliin / ilmoitukseen, jossa on :GoDef, ja katso asiakirjat, joissa on :GoDoc tai :GoDocBrowser.
  • Tarkista koodin kattavuus, tee koodin lintaus jne.

voit katsoa kaikki vim-Gon tarjoamat ominaisuudet täältä.

asentaminen vim-go

vim 8 lisäsi natiivituen paketeille, mikä tarkoittaa, että voit ladata liitännäisiä vain kloonaamalla niiden sisällön ~/.vim – hakemistoon. Jos haluat asentaa vim-go: n, voit suorittaa komennon:

git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
Siirry kokoruututilaan poistu kokoruututilasta

sinun täytyy myös asentaa kaikki tarvittavat binäärit. vim-go helpottaa niiden kaikkien asentamista antamalla komennon :GoInstallBinaries, joka go get kaikki tarvittavat binäärit.

tai voit laittaa liitännäisen omaan ~/.vimrc.

call plug#begin()Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }call plug#end()
Siirry kokoruututilaan poistu kokoruututilasta

Tallenna nyt .vimrc ja asenna liitännäinen ajamalla vim +PlugInstall. Se asentaa Vim-go plugin kaikki tarvittavat binäärit.

olen lisännyt vim-go: Hon liittyvien direktiivien jälkeen .vimrc: Iin, jotta se olisi käyttökelpoisempi:

voit käydä virallisilla tutoriaaleilla omia muokkauksia varten. Täydelliset vim-go-dokumentaatiot ovat saatavilla vim-muokkaimessa, voit suorittaa :help vim-go tarkistaaksesi ne. Näin vim etsii Go-ohjelman asennuksen ja määrittämisen jälkeen vim-go:

kaunis?

Automaattitäydennys

sitä on todella vaikea koodata ilman automaattitäydennystä, eikä pysty menemään määritelmään. Vim-go voi käyttää gopls täydennykseen jne. Täydennys on oletusarvoisesti käytössä omnifuncin kautta. Kun olet INSERT – tilassa, voit käynnistää täydennyksen arvolla Ctrl-x Ctrl-p. Jos vastaavia nimiä löytyy, avautuu ponnahdusvalikko, jota voi suunnistaa näppäimillä Ctrl-n ja Ctrl-p.
voit tarkistaa, onko vim-go: n ftplugin/go.vim asetukset määritetty oikein automaattitäydennystä varten, voit suorittaa:

:verbose setlocal omnifunc?
Siirry kokoruututilaan poistu kokoruututilasta

alla olevan viestin pitäisi näkyä:

jos haluat automaattisen täydennyskehotteen ilmestyvän automaattisesti aina kun painat pistettä (.), voit lisätä seuraavan rivin .vimrc:

au filetype go inoremap <buffer> . .<C-x><C-o>
Siirry kokoruututilaan poistu kokoruututilasta

nyt, kirjoittamalla pitäisi tarjota auto ehdotuksia sekä dokumentaation esikatselut. Sen pitäisi näyttää tältä.:

sen lisäksi vim-go loppuun, on joitakin hyviä plugins, jota voit käyttää automaattinen täydennys ja muut LSP ominaisuuksia. Jotkut niistä ovat:

  • coc.nvim (Conquer of Completion): Intellisense engine vim8 & Neovim, täysi kielipalvelinprotokollatuki vscode.
  • LanguageClient-neovim: Minimal Language Server Protocol client written in Rust.
  • YouCompleteMe: Code-completion engine. Siinä on useita viimeistelymoottoreita.

Language Server Protocol (LSP) ja gopls

Kielipalvelinprotokollaa käytetään työkalun (asiakkaan) ja kielen smartness-tarjoajan (palvelimen) välillä integroidakseen työkaluun ominaisuuksia, kuten auto-complete, siirry määrittelyyn, Etsi kaikki viitteet ja samankaltaiset. Protokollan tavoitteena on mahdollistaa ohjelmointikielen tuen toteuttaminen ja jakaminen riippumatta tietystä Editorista tai IDE: stä. Kielipalvelinprotokolla kehitettiin alun perin Microsoftin Visual Studio-koodille ja on nykyään avoin standardi. Microsoft teki yhteistyötä Red Hatin ja Codenvyn kanssa standardoidakseen protokollan spesifikaation.

ennen LSP: tä eri kielille oli olemassa erilaisia Id-koodeja (edelleen niitä on paljon). Jokaisessa IDE: ssä oli kielikohtainen integraatio (syntaksin korostus, automaattinen täydennys, määrittely jne.Ominaisuudet). Tilannetta kutsutaan usein M × n-ongelmaksi, jossa integraatioiden määrä on M-editorien ja N-kielten tulo. Kielipalvelinprotokolla muuttaa tämän m × n-ongelman m + n-ongelmaksi. Parasta LSP on, se on täysin riippumaton IDEs. Tämän seurauksena voimme nähdä, että Visual Studio toimii niin monille eri kielille laajennusten kautta. Nämä laajennukset hyödyntävät LSP: tä.

voit lukea lisää LSP: stä täältä ja hänestä tai katsoa tämän YouTube-videon nähdäksesi, miten se toimii.

Golangin virallinen Kielipalvelin on gopls (lausutaan: ”go please”). Voit tarkistaa lisätietoja tilasta gopls ja sen Tuetut ominaisuudet.

🔌 Nörtree

asetettuasi paljon tavaraa Vimiisi, yksi asia, josta luultavasti vielä puuttuu eniten, on ”sivuikkuna”, jossa voit selata projektitiedostojasi helposti. Nörttitree vei sinut sinne. Nörtree on täysimittainen tiedostojärjestelmän explorer, joka auttaa visuaalisesti selata tiedostoja käyttäen puu-tyylinen sivuikkuna. Nerdtreen avulla voit nopeasti avata tiedostoja lukemista tai muokkaamista varten ja suorittaa tiedostojärjestelmän perustoimintoja.

asennus ja asetelmat

Nerdtreen voi asentaa samalla tavalla kuin vim-Gon ja coc: n.nvim. Lisää Plug 'preservim/nerdtree' kohteeseen .vimrc ja aja :PlugInstall tai aja vim +PlugInstall komentoriviltä.

edelleen, voit tarkistaa wiki usein kysytyt kysymykset asetuksille. Minun asetelmia Nörtree on samanlainen:

voit avata kansion vim: iin käyttämällä vim . (samanlainen kuin code . vscode: lle). Voit vaihtaa Nerdtreen ja koodin välillä käyttämällä CTRL+ww tai CTRL+w+ArrowKey. Nörtree on sisäänrakennettu dokumentaatio, voit tarkistaa ne painamalla ?, kun olet Nörtree-ikkunassa.

tältä Vim-setupini näyttää Nörtreellä:

voit katsoa .vimrc – ja vim-skriptejäni GitHubissa osoitteessa jogendra/dotfiles / vim.

tässä muutamia linkkejä, jotka auttavat sinua aloittamaan vim-hoidon:

  • OpenVim-Interactive Vim Tutorials
  • fandomin parhaat Vim-vinkit
  • miksi, oh WHY, why those nutheads use vi?
  • kokoelma thoughbotin kirjoittamia vim-artikkeleita
  • spf13 – vim-lopullinen Vim-Jakelu
  • Vim Cheatsheet
  • vim Tab Madness. Puskurit vs välilehdet

voit yksinkertaisesti ajaa vimtutorin komentorivilläsi ajamalla vimtutor komennon. Se avaa Vim tutorials ja auttaa sinua pääsemään alkuun sen.

pohjalukemat

Vimin käyttäminen on hauskaa. Aluksi, saatat kohdata joitakin ongelmia käyttää sitä ja sinun täytyy ehkä oppia käyttämään sitä, mutta se on ehdottomasti syytä oppia se. Ainakin voit jatkaa Vimin oppimista IDE: n käytön rinnalla. Aloita minimistä ja rakenna vähän sen päälle joka päivä. On olemassa paljon plugins saatavilla kaiken mitä tarvitset Vim. Käyttämällä Vim golang kehitys on super mukava vim-go plugin. Eikö ole mukavaa, kun kaikki on yhdessä paikassa ja on tuottavampi?

Kiitos lukemisesta. Jaa kollegoidesi / ystäviesi kanssa. Voit ottaa minuun yhteyttä Twitterissä.



+