Použití Vim pro vývoj Go

jako programátor trávíte spoustu času pomocí textových editorů, Ide atd. Je tedy důležité, co a jak jej používáte. Nedávno jsem se přestěhoval do Vim pro rozvoj Go a já ho naprosto miluji. Zpočátku jsem používal VSCode s rozšířením Go a poté jsem chvíli používal GoLand. Visual Studio Code a GoLand jsou naprosto úžasné, miloval jsem je také používat. Určitě trvá nějaký čas, než se naučíte pomocí vim, ale stojí za to se učit. Je zcela na vás, co pro vás funguje lépe. Nepoužívejte vim jen proto, že ho používají ostatní. Jsem velmi začátečník vim a věci, které vysvětlím, je to, co jsem se naučil poté, co jsem ho začal používat. Byl bych opravdu rád, pokud jste dlouholetým uživatelem Vim a máte nějaké dobré rady/návrhy. Můžete je umístit do sekce komentářů tohoto příspěvku. Pokud jste začátečník, dám nějaké dobré zdroje pro učení vim v dolní části tohoto příspěvku.

Poznámka: Tento příspěvek je původně publikován na https://jogendra.dev.

proč lidé používají Vim?

  • Vim je zaručeno, že existuje na všech unixových systémech (v podstatě je k dispozici na všech hlavních platformách). Je to všude a je to stejné na všech platformách. Vim podporuje všechny formáty souborů a programovací jazyky, není třeba stahovat různé IDE pro různé programovací jazyky.
  • navigace bez myši. Vaše prsty velmi zřídka musí opustit domácí řádek, což znamená, že budete moci upravovat text velmi, velmi rychle. Mapování klíčů můžete provádět podle svého pohodlí. Nemusíte přepínat mezi klávesnicí a myší, je určitě hezké s Vim.
  • Vim je velmi lehký a rychlý. Vim může snadno zpracovávat velké soubory, ale Visual Studio nebo jiné IDE je nemohly zvládnout hladce. Zkuste otevřít velký soubor (~20 MB) s vaším oblíbeným textovým editorem bez vim a vim, určitě poznáte rozdíl. Ve způsobu, jakým Vim zpracovává soubory (vyrovnávací paměti), rozděluje (windows) a rozvržení (karty), je velká síla, kterou nemůžete získat v jiných editorech.
  • Vim a vim jako textové editory (emacs, nano, atd) cítit a vypadat tak nativní, žádné rozptýlení. Nemusím přepínat mezi terminálem a editorem / IDE. Je to prostě všechno na jednom místě. Je docela snadné být produktivní ve vim s malým úsilím.
  • Vim je velmi užitečné, když budete muset provést rychlé konfigurační nebo jiné změny na vzdáleném počítači / serveru. Ani na vlastním počítači neotevřete těžký textový editor pro malé změny.
  • Vim je vysoce konfigurovatelný. Můžete jednoduše použít ~/.vimrc přepsat výchozí konfigurace a přizpůsobit své. Pluginy vim poskytují vim vše, co potřebujete v textovém editoru. Automatické dokončování, zvýraznění syntaxe nebo jakákoli jiná funkce, kterou pojmenujete a je k dispozici, stačí správný plug-in.
  • používání vim je zábava. Zpočátku je to trochu náročné, ale jakmile si na to zvyknete, bude to zábavné.

Pojďme!

v tomto příspěvku prozkoumáme nastavení Vim jako plnohodnotného IDE pro vývoj Go. Pluginy, které budeme používat, jsou:

  • vim-go: Go vývoj plugin pro Vim. Má vše, co potřebujete pro rozvoj Go.
  • NERDTree-File system explorer pro Vim. Umožňuje vizuálně procházet složité hierarchie adresářů, rychle otevírat soubory pro čtení nebo úpravy a provádět základní operace systému souborů.

🔌 Vim-Go

Vim-Go je nejoblíbenější a nejpoužívanější plugin vim pro vývoj Go. Nabízí téměř všechny funkce, které budete potřebovat. Některé z nich jsou:

  • zkompilujte svůj balíček pomocí :GoBuild, nainstalujte jej pomocí :GoInstall nebo jej vyzkoušejte pomocí :GoTest.
  • rychle spusťte aktuální soubory pomocí :GoRun.
  • zvýraznění a skládání syntaxe.
  • Podpora automatického doplňování pomocí gopls.
  • spusťte gofmt a goimports při uložení. Znamená to, že se nemusíte starat o import balíčků a formátování kódu, vim-go to udělá za vás při ukládání souboru.
  • přejděte na symbol / prohlášení s :GoDef a vyhledejte dokumentaci s :GoDoc nebo :GoDocBrowser.
  • zkontrolujte pokrytí kódu, proveďte podšívku kódu atd.

všechny funkce, které nabízí vim, můžete zkontrolovat zde.

Instalace vim-

Vim 8 přidána nativní podpora pro balíčky, které znamená, že můžete načíst pluginy jen klonování jejich obsahu do ~/.vim adresář. Chcete-li nainstalovat Vim-go, můžete jednoduše spustit příkaz:

git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
Zadejte fullscreen režimu Ukončení režimu celé obrazovky

Budete také muset nainstalovat všechny potřebné binární soubory. vim-go usnadňuje instalaci všech z nich tím, že příkaz, :GoInstallBinaries, který bude go get všechny požadované binární soubory.

nebo můžete vložit plugin do ~/.vimrc.

call plug#begin()Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }call plug#end()
Zadejte fullscreen režimu Ukončení režimu celé obrazovky

Nyní uložte .vimrc a nainstalovat plugin spuštěním vim +PlugInstall. Nainstaluje plugin vim-go se všemi potřebnými binárními soubory.

přidal jsem následující vim-jít souvisejících směrnic do mé .vimrc, aby bylo více užitečné:

můžete navštívit oficiální návody pro vlastní customizaci. Kompletní dokumentace vim-go jsou k dispozici ve vašem editoru vim, můžete jednoduše spustit :help vim-go a zkontrolovat je. Takto Můj vim hledá program Go po instalaci a konfiguraci vim-go:

nádhera?

Automatické dokončení

je opravdu těžké kódovat bez automatického dokončení a není schopen jít do definice. Vim-go může použít gopls pro dokončení atd. Dokončení je ve výchozím nastavení povoleno pomocí omnifunc. Když jste v režimu INSERT, můžete spustit dokončení pomocí Ctrl-x Ctrl-p. Pokud jsou nalezeny odpovídající názvy, otevře se rozbalovací nabídka, kterou lze navigovat pomocí kláves Ctrl-n a Ctrl-p.
zkontrolovat, jestli vim-go ftplugin/go.vim byl správně nakonfigurován pro automatické doplňování, můžete spustit:

:verbose setlocal omnifunc?
Zadejte fullscreen režimu Ukončení režimu celé obrazovky

Zprávy by se měl objevit pod:

Pokud chcete, automatické dokončování řádku se objeví automaticky vždy, když stisknete tečku (.), můžete přidat následující řádek .vimrc:

au filetype go inoremap <buffer> . .<C-x><C-o>
Zadejte fullscreen režimu Ukončení režimu celé obrazovky

Nyní, psaní by měl nabídnout automatické návrhy spolu s dokumentací náhledy. Mělo by to vypadat nějak takto:

kromě dokončení vim-go existují některé dobré pluginy, které můžete použít pro automatické dokončení a další funkce LSP. Některé z nich jsou:

  • coc.nvim (Conquer of Completion): Intellisense engine pro Vim8 & Neovim, Plná jazyková podpora protokolu serveru jako VSCode.
  • LanguageClient-neovim: klient protokolu minimálního jazykového serveru napsaný v Rustu.
  • YouCompleteMe: kód-dokončení motoru. Má několik dokončovacích motorů.

Jazyk Serveru Protokolu (LSP) a gopls

Jazyk Server je Protokol používaný mezi nástrojem (klient) a jazyk, chytrost poskytovatele (server) integrovat funkce, jako je auto-kompletní, přejít na definici, najít všechny odkazy a podobně do nástroje. Cílem protokolu je umožnit implementaci a distribuci podpory programovacích jazyků nezávisle na daném editoru nebo IDE. Protokol Language Server byl původně vyvinut pro kód Visual Studio společnosti Microsoft a nyní je otevřeným standardem. Microsoft spolupracoval s Red Hat a Codenvy na standardizaci specifikace protokolu.

před LSP existovaly různé IDE pro různé jazyky (stále existuje mnoho). Každý IDE měl integraci specifickou pro jazyk (zvýraznění syntaxe, automatické dokončení, přechod na definici atd.). Situace je často označována jako problém M × n, kde počet integrací je produktem editorů M A N jazyků. Protokol jazykového serveru mění tento problém M × n na problém M + n. Nejlepší na LSP je, že je zcela nezávislý na IDEs. Výsledkem je, že Visual Studio pracuje pro tolik různých jazyků prostřednictvím rozšíření. Tato rozšíření využívají LSP.

můžete si přečíst více o LSP zde a ona nebo sledovat toto video YouTube vidět, jak to funguje.

oficiálním jazykovým serverem pro Golang je gopls (vyslovováno: „jdi prosím“). Můžete zkontrolovat další informace o stavu gopls a jeho podporovaných funkcích.

🔌 NERDTree

Po nastavení spoustu věcí ve vaší Vim, jedna věc, kterou budete pravděpodobně stále chybí nejvíce, je „Boční Okno“, kde můžete procházet vaše soubory projektu snadno. NERDTree tě tam dostal. NERDTree je plnohodnotný souborový systém explorer, který pomáhá vizuálně procházet soubory pomocí postranního okna ve stylu stromu. S NERDTree můžete rychle otevírat soubory pro čtení nebo úpravy a provádět základní operace systému souborů.

instalace a nastavení

můžete nainstalovat NERDTree stejně jako vim-go a coc.nvim. Jednoduše přidejte Plug 'preservim/nerdtree' do .vimrc a spusťte :PlugInstall nebo spusťte vim +PlugInstall z příkazového řádku.

dále můžete získat wiki FAQ pro nastavení. Moje nastavení pro NERDTree je podobný:

můžete otevřít adresář, do vimu pomocí vim . (podobné code . pro VSCode). Můžete přepínat mezi NERDTree a kódu pomocí CTRL+ww nebo CTRL+w+ArrowKey. NERDTree má vestavěnou dokumentaci, můžete je zkontrolovat stisknutím ?, když jste v okně NERDTree.

To je, jak můj Vim nastavení vypadat s NERDTree:

můžete se podívat na moje .vimrc a vim skripty na Githubu na jogendra/dotfiles/vim.

Zde jsou některé odkazy, které vám pomohou začít s Vim:

  • OpenVim – Interaktivní Vim Návody
  • Nejlepší Vim Tipy Fandom
  • Proč, oh PROČ, ty nutheads používat vi?
  • Kolekce Vim články thoughtbot
  • spf13-vim – Konečný Vim Distribuce
  • Vim Taháku
  • Vim Tab Šílenství. Vyrovnávací paměti vs Tabs

můžete jednoduše spustit vimtutor v příkazovém řádku spuštěním příkazu vimtutor. Otevře se výukové programy Vim a pomůže vám s tím začít.

spodní řádky

použití vim je zábava. Zpočátku můžete čelit nějakému problému s jeho používáním a možná se budete muset naučit, jak jej používat, ale rozhodně stojí za to se ho naučit. Alespoň můžete pokračovat v učení vim spolu s použitím IDE. Začněte s minimem a každý den na něm trochu stavte. Existuje mnoho pluginů k dispozici pro vše, co potřebujete s Vim. Použití vim pro rozvoj Golang je super pěkné s vim-go plugin. Není hezké mít všechno na jednom místě a být produktivnější?

Díky za přečtení. Ještě sdílet se svými kolegy / přáteli. Můžete mě kontaktovat na Twitteru.



+