A Vim használata a Go fejlesztéshez

programozóként sok időt töltesz szövegszerkesztőkkel, ide-kkel stb. Fontos, hogy mit és hogyan használjunk. Nemrég költöztem a Vim-hez a GO fejlesztéshez, és teljesen imádom. Kezdetben a Go kiterjesztésű VSCode-ot használtam, majd ezt követően egy ideig a GoLand-ot használtam. A Visual Studio Code és a GoLand mindkettő teljesen fantasztikus, én is szerettem használni őket. A vim használatával mindenképpen időbe telik a tanulás, de megéri a tanulást. Teljesen rajtad múlik, hogy mi működik jobban az Ön számára. Ne használja a vim-et csak azért, mert mások használják. Nagyon kezdő vagyok a vim-hez, és olyan dolgokat fogok elmagyarázni ebben, amit megtanultam, miután elkezdtem használni. Nagyon örülnék, ha hosszú ideje vim felhasználó vagy, és van néhány jó tanácsod/javaslatod. Akkor tedd a megjegyzés rovatban ezt a bejegyzést. Ha kezdő vagy, akkor jó forrásokat teszek a vim tanulásához a bejegyzés alján.

Megjegyzés: Ezt a bejegyzést eredetileg a https://jogendra.dev oldalon tették közzé.

miért használják az emberek a Vim-et?

  • a Vim garantáltan létezik minden Unix rendszeren (alapvetően minden nagyobb platformon elérhető). Mindenhol ott van, és minden platformon ugyanaz. A Vim támogatja az összes fájlformátumot és programozási nyelvet, nincs szükség különböző IDE-k letöltésére a különböző programozási nyelvekhez.
  • egér ingyenes navigáció. Az ujjainak nagyon ritkán kell elhagyniuk az otthoni sort, ami azt jelenti, hogy nagyon-nagyon gyorsan szerkesztheti a szöveget. A kulcs leképezést az Ön kényelme szerint teheti meg. Nem kell váltani a billentyűzet és az egér határozottan szép Vim.
  • a Vim nagyon könnyű és gyors. A Vim könnyen kezelheti a nagy fájlokat, de a Visual Studio vagy más IDE nem tudta zökkenőmentesen kezelni őket. Próbáljon meg megnyitni egy nagy fájlt (~20 MB) a kedvenc nem vim szövegszerkesztőjével és vim-jével, biztosan megismeri a különbséget. Nagy erő van abban, ahogyan a Vim kezeli a fájlokat (pufferek), a felosztásokat (windows) és az elrendezéseket (lapok), az a hatalom, amelyet más szerkesztőkben nem kaphat meg.
  • Vim és vim, mint a szövegszerkesztők (emacs, nano, stb) Úgy érzi, és úgy néz ki, így natív, nincs figyelemelterelés. Nem kell váltanom a terminál és az editor / IDE között. Egyszerűen minden egy helyen. Nagyon könnyű, hogy kevés erőfeszítéssel produktív legyen a vim-ben.
  • a Vim nagyon hasznos, ha gyors konfigurációs vagy egyéb változtatásokat kell végrehajtania a távoli gépen/szerveren. Még a saját gépén sem nyit meg nehéz szövegszerkesztőt apró változtatás céljából.
  • a Vim nagyon konfigurálható. A ~/.vimrc használatával egyszerűen felülbírálhatja az alapértelmezett konfigurációkat, és személyre szabhatja a sajátját. A Vim beépülő modulok mindent megadnak a Vim számára, amire szüksége van egy szövegszerkesztőben. Automatikus kiegészítés, szintaxis kiemelés vagy bármilyen más funkció, amelyet megnevez, és elérhető, csak a megfelelő plug-inre van szüksége.
  • a vim használata szórakoztató. Kezdetben kissé kihívást jelent, de szórakoztatóvá válik, ha megszokja.

gyerünk!

ebben a bejegyzésben megvizsgáljuk a Vim teljes értékű IDE-ként történő beállítását a Go fejlesztéshez. Plugins fogunk használni a következők:

  • vim-go: Go fejlesztési plugin a Vim – hez. Mindent megtalál, amire szüksége van a Go fejlesztéshez.
  • NERDTree – fájlrendszer explorer a Vim. Ez lehetővé teszi, hogy vizuálisan böngészni komplex könyvtár hierarchiák, gyorsan megnyitni a fájlokat olvasás vagy szerkesztés, és végre alapvető fájlrendszer műveleteket.

🔌 Vim-Go

a Vim-Go a legnépszerűbb és leggyakrabban használt vim plugin a Go fejlesztéshez. Szinte minden olyan funkciót kínál, amelyre szüksége lehet. Néhány ezek közül:

  • fordítsd le a csomagot :GoBuild, telepítse :GoInstall vagy tesztelje :GoTest.
  • gyorsan hajtsa végre az aktuális fájl(oka) t a :GoRun gombbal.
  • Szintaxis kiemelés és összecsukás.
  • Automatikus kiegészítés támogatás a gopls segítségével.
  • a gofmt és goimports futtatása mentéskor. Azt jelenti, hogy nem kell aggódnia a csomagok importálása és a kódformázás miatt, a Vim-go ezt megteszi a fájl mentésekor.
  • lépjen a szimbólumra/deklarációra a :GoDef gombbal, és keresse meg a dokumentációt a :GoDocvagy :GoDocBrowser gombbal.
  • ellenőrizze a kód lefedettségét, végezzen kódolást stb.

meg tudja nézni az összes által kínált funkciók vim-go itt.

a vim-go telepítése

a Vim 8 natív támogatást adott a csomagokhoz, ami azt jelenti, hogy a beépülő modulokat csak a tartalom klónozásával töltheti be a ~/.vim könyvtárba. A Vim-go telepítéséhez egyszerűen futtathatja a parancsot:

git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
lépjen be a teljes képernyős módba Kilépés a teljes képernyős módból

telepítenie kell az összes szükséges bináris fájlt is. vim-go megkönnyíti telepíteni mindet azáltal, hogy egy parancsot, :GoInstallBinaries, amely go get az összes szükséges bináris.

vagy akkor tegye a plugin a ~/.vimrc.

call plug#begin()Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }call plug#end()
lépjen be a teljes képernyős módba Kilépés a teljes képernyős módból

Most mentse a .vimrcés telepítse a plugin futtatásával vim +PlugInstall. Telepíti a vim-go plugint az összes szükséges bináris fájllal.

hozzáadtam a következő vim-go kapcsolódó irányelveket az .vimrc – hez, hogy hasznosabb legyen:

látogasson el a hivatalos oktatóanyagokra a saját testreszabásához. Teljes vim-go dokumentációk állnak rendelkezésre a vim szerkesztő, akkor egyszerűen futtatni :help vim-go, hogy ellenőrizze őket. Így néz ki a vim egy Go programot a Vim-go telepítése és konfigurálása után:

gyönyörű?

Automatikus kiegészítés

nagyon nehéz kódolni automatikus kiegészítés nélkül, és nem lehet a definícióhoz menni. A Vim-go gopls – et használhat a befejezéshez stb. A Befejezés alapértelmezés szerint engedélyezve van az omnifunc segítségével. Amíg INSERT módban van, a befejezést a Ctrl-x Ctrl-pgombbal indíthatja el. Ha egyező neveket talál, megnyílik egy előugró menü, amely a Ctrl-n és Ctrl-p gombokkal navigálható.
annak ellenőrzéséhez, hogy a vim-go ftplugin/go.vim beállítása helyes-e az automatikus kiegészítéshez, a következőket futtathatja:

:verbose setlocal omnifunc?
lépjen be a teljes képernyős módba Kilépés a teljes képernyős módból

az alábbi üzenetnek meg kell jelennie:

ha azt szeretné, hogy az automatikus kiegészítés automatikusan megjelenjen, amikor megnyomja a pontot (.), a következő sort adhatja hozzá .vimrc:

au filetype go inoremap <buffer> . .<C-x><C-o>
lépjen be a teljes képernyős módba Kilépés a teljes képernyős módból

most a gépelésnek automatikus javaslatokat kell kínálnia a dokumentáció előnézeteivel együtt. Úgy kell kinéznie, mint ez:

eltekintve vim-go befejezése, van néhány jó plugin, amelyek segítségével az automatikus kiegészítés és egyéb LSP funkciók. Néhány ezek közül:

  • coc.nvim (Conquer of Completion): Intellisense motor Vim8 & Neovim, teljes nyelvi szerver protokoll támogatása VSCode.
  • LanguageClient-neovim: minimális nyelv szerver protokoll kliens írt Rust.
  • YouCompleteMe: Kód-befejezése motor. Több befejező motorral rendelkezik.

Language Server Protocol (LSP) és gopls

a Language Server Protocol egy eszköz (az ügyfél) és egy language smartness szolgáltató (a szerver) között használatos olyan funkciók integrálására, mint az automatikus kiegészítés, a definíció, az összes hivatkozás keresése és hasonlók az eszközbe. A protokoll célja, hogy lehetővé tegye a programozási nyelv támogatását az adott szerkesztőtől vagy IDE-től függetlenül. A Language Server protokollt eredetileg a Microsoft Visual Studio kódjához fejlesztették ki, és ma már nyílt szabvány. A Microsoft együttműködött a Red Hat-tal és a Codenvy-vel a protokoll specifikációjának szabványosításában.

az LSP előtt a különböző nyelvek különböző ide-jei voltak (még mindig sok). Minden ide-nek Nyelvspecifikus integrációja volt (szintaxis kiemelés, automatikus kiegészítés, definíció elérése stb.). Ezt a helyzetet gyakran M-nek nevezik, ahol az integrációk száma M szerkesztők és N nyelvek szorzata. A Language Server Protocol ezt az M ++ N problémát M + N problémává változtatja. A legjobb dolog az LSP-ben, teljesen független az IDEs-től. Ennek eredményeként láthatjuk, hogy a Visual Studio olyan sok nyelven működik kiterjesztéseken keresztül. Ezek a kiterjesztések az LSP-t használják.

az LSP-ről itt olvashat bővebben, vagy nézze meg ezt a YouTube-videót, hogy lássa, hogyan működik.

hivatalos nyelv szerver Golang is gopls (ejtsd: “menj kérlek”). További információt a gopls állapotáról és a támogatott funkciókról.

beállítása után egy csomó dolgot a Vim, egy dolog, amit valószínűleg még mindig hiányzik a legtöbb “oldalsó ablak”, ahol böngészhet a projekt fájlokat könnyen. NERDTree Elkapott. A NERDTree egy teljes értékű fájlrendszer-felfedező, amely segít a fájlok vizuális böngészésében egy fa stílusú oldalsó ablak segítségével. A NERDTree segítségével gyorsan megnyithatja a fájlokat olvasásra vagy szerkesztésre, valamint elvégezheti az alapvető fájlrendszer-műveleteket.

telepítés és beállítások

a NERDTree ugyanúgy telepíthető, mint a vim-go és a coc.nvim. Egyszerűen add hozzá a Plug 'preservim/nerdtree' – ot a .vimrc – hez, és futtasd a :PlugInstall – et vagy a vim +PlugInstall – t a parancssorból.

További, akkor pénztár wiki GYIK beállítások. A NERDTree beállításaim hasonlóak:

a vim . használatával megnyithat egy könyvtárat a vim-be (hasonlóan a code . – hez a VSCode-hoz). A NERDTree és a kód között CTRL+ww vagy CTRL+w+ArrowKeyhasználatával válthat. A NERDTree beépített dokumentációval rendelkezik, a ? megnyomásával ellenőrizheti őket, ha a nerdtree ablakban van.

így néz ki a Vim beállításom a NERDTree-vel:

megnézheted a .vimrc és a Vim szkriptjeimet a GitHubon a jogendra/dotfiles/vim oldalon.

íme néhány link, amely segít a Vim használatának megkezdésében:

  • OpenVim-interaktív Vim oktatóanyagok
  • a rajongók legjobb Vim tippjei
  • miért, ó, miért használják ezek a diófejek a vi-t?
  • gyűjteménye Vim cikkek thoughtbot
  • spf13-vim – a végső Vim forgalmazás
  • Vim Cheatsheet
  • Vim Tab Madness. Buffers vs Tabs

egyszerűen futtathatja a vimtutor parancsot a parancssorban a vimtutor parancs futtatásával. Ez megnyitja a Vim oktatóanyagokat, és segít elkezdeni vele.

alsó sor

a vim használata szórakoztató. Kezdetben előfordulhat, hogy valamilyen problémával szembesülsz, és lehet, hogy meg kell tanulnod használni, de mindenképpen érdemes megtanulni. Legalább folytathatja a Vim tanulását az IDE használata mellett. Kezdje a minimummal, és minden nap építsen rá egy kicsit. Van egy csomó plugin elérhető mindent, amire szüksége van a Vim. Használata Vim Golang fejlesztés szuper szép vim-go plugin. Nem jó, ha minden egy helyen van, és produktívabb?

köszönöm az olvasást. Ossza meg kollégáival / barátaival. Elérhet engem a Twitteren.



+