como programador, você gasta muito tempo usando editores de texto, IDEs, etc para o código. Então é importante o que e como você usá-lo. Mudei-me recentemente para a Vim para o Go development e estou a adorar. Inicialmente, eu estava usando VSCode com extensão Go e depois disso, eu usei GoLand por um tempo. O Visual Studio Code e o GoLand são fantásticos, também adorei usá-los. Definitivamente leva algum tempo para aprender usando vim, mas vale a pena o aprendizado. Depende totalmente de ti o que funciona melhor para ti. Não utilize vim apenas porque outros o estão a utilizar. Eu sou muito um novato para vim e coisas que eu vou explicar nisto é o que eu aprendi depois que comecei a usá-lo. Eu ficaria muito feliz se você é um longo tempo Vim Usuário e ter alguns bons conselhos/sugestões. Você pode colocá-los na seção de comentários deste post. Se você é um novato, eu vou colocar alguns bons recursos para aprender vim no fundo deste post.
Nota: Este post foi originalmente publicado em https://jogendra.dev.Porque é que as pessoas usam a Vim?
- Vim é garantida a existência em todos os sistemas Unix (basicamente, está disponível em todas as principais plataformas). Está em todo o lado, e é o mesmo em todas as plataformas. O Vim suporta todos os formatos de arquivos e linguagens de programação, não há necessidade de baixar diferentes IDEs para diferentes linguagens de programação.
- Navegação livre do rato. Os seus dedos raramente têm de sair da fila da casa, o que significa que será capaz de editar o texto muito, muito rapidamente. Você pode fazer mapeamento de chaves de acordo com a sua conveniência. Não ter que mudar entre teclado e mouse é definitivamente bom com Vim.
- Vim é muito leve e rápida. A Vim consegue lidar facilmente com ficheiros grandes, mas o Visual Studio ou outro IDE não os conseguia lidar sem problemas. Tente abrir um arquivo grande (~20MB) com o seu editor de texto não-vim favorito e vim, você definitivamente vai ficar a saber a diferença. Há grande poder na forma como o Vim lida com arquivos (buffers), splits (windows), e layouts (tabs), o poder que você não pode obter em outros editores.
- Vim e vim como editores de texto (emacs, nano, etc) sentir e parecer tão nativo, sem distração. Não tenho de mudar entre o terminal e o editor/IDE. É simplesmente tudo num só lugar. É muito fácil ser produtivo na vim com pouco esforço.
- Vim é muito útil quando você tem que fazer configurações rápidas ou outras mudanças na máquina/servidor remoto. Mesmo na sua própria máquina, você não vai abrir um editor de texto pesado para pequenas mudanças.
- Vim é altamente configurável. Você pode simplesmente usar
~/.vimrc
para substituir configurações padrão e personalizar o seu. Plugins Vim fornecer tudo para vim que você precisa em um editor de texto. Completar automaticamente, realce de sintaxe, ou qualquer outra funcionalidade que você o nomeie e esteja disponível, você só precisa do plug-in direito.O uso da vim é divertido. É um pouco desafiador de usar inicialmente, mas torna-se divertido uma vez que você se acostumar com isso.Vamos!neste post, vamos explorar a criação da Vim como uma IDE de pleno direito para o desenvolvimento de Go. Plugins que vamos usar São:
- ‘plugin’ de desenvolvimento do vim-go: Go para o Vim. Tem tudo o que você precisa para ir desenvolvimento.
- NERDTree-File system explorer for the Vim. Ele permite que você navegue visualmente as hierarquias complexas de diretórios, abra rapidamente arquivos para leitura ou edição, e execute operações básicas do sistema de arquivos.
🔌 Vim-Go
Vim-Go é o mais popular e mais usado plugin vim para o desenvolvimento Go. Ele oferece quase todos os recursos que você pode precisar. Alguns deles são:
- Compile o seu pacote com
:GoBuild
, instale – o com:GoInstall
ou teste-o com:GoTest
. - execute rapidamente o(s) Seu (s) Arquivo (s) atual (S) com
:GoRun
. - realce de sintaxe e dobragem.
- suporte à completação automática via
gopls
. - Run
gofmt
andgoimports
on save. Significa que você não tem que se preocupar com a importação de pacotes e formatação de código, o vim-go fará isso para você ao salvar o arquivo. - Go to symbol / declaration with
:GoDef
and look up documentation with:GoDoc
or:GoDocBrowser
. - Check code coverage, do code linting etc.
pode verificar todas as características oferecidas pela vim-go aqui.
instalar o vim-go
Vim 8 adicionou suporte nativo para os pacotes, o que significa que você pode carregar plugins apenas clonando o seu conteúdo no seu directório
~/.vim
. Para instalar o vim-go, você pode simplesmente executar o comando:git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
entrar no modo de ecrã completo sair do modo de ecrã completoVocê também precisará instalar todos os binários necessários. vim-go facilita a instalação de todos eles, fornecendo um comando,
:GoInstallBinaries
, que irágo get
todos os binários necessários.ou pode colocar o plugin no seu
~/.vimrc
.call plug#begin()Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }call plug#end()
Introduza o modo de tela cheia Sair do modo de tela cheiaAgora salve o
.vimrc
e instalar o plugin executandovim +PlugInstall
. Ele irá instalar o plugin vim-go com todos os binários necessários.aditei, na sequência de directivas relacionadas com a vim, à minha
.vimrc
, para a tornar mais útil:você pode visitar tutoriais oficiais para suas próprias personalizações. Documentação completa vim-go está disponível no seu editor vim, você pode simplesmente executar
:help vim-go
para verificá-los. É assim que o meu vim procura um programa Go depois de instalar e configurar o vim-go:linda?
Auto-completação
é realmente difícil codificar sem auto-completação e não ser capaz de ir para a definição. Vim-go pode usar
gopls
para completar, etc. A completação é activada por omissão através do omnifunc. Enquanto estiver no modoINSERT
, pode activar a completação comCtrl-x Ctrl-p
. Se forem encontrados nomes correspondentes, abre-se um menu de contexto que pode ser navegado com as teclasCtrl-n
eCtrl-p
.
para verificar se o vim-go’sftplugin/go.vim
foi configurado correctamente para completar automaticamente, poderá executar::verbose setlocal omnifunc?
entrar no modo de ecrã completo sair do modo de ecrã completoa mensagem abaixo deve aparecer:
Se você deseja que o autocompletar prompt aparecer automaticamente sempre que você pressionar o ponto (
.
), você pode adicionar a seguinte linha ao seu.vimrc
:au filetype go inoremap <buffer> . .<C-x><C-o>
Introduza o modo de tela cheia Sair do modo de tela cheiaAgora, a digitação deve oferecer auto sugestões, junto com a documentação de pré-visualizações. Devia ser parecido com isto.:
além de vim-go completion, há alguns plugins bons que você pode usar para auto-completação e outras características LSP. Alguns deles são:
- coc.nvim (Conquer of Completion): Intellisense engine for Vim8 & Neovim, full language server protocol support as VSCode.
- LanguageClient-neovim: Minimal Language Server Protocol client written in Rust.
- YouCompleteMe: Code-completion engine. Tem vários motores de acabamento.
Language Server Protocol (LSP) and gopls
o Language Server Protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto-complete, go to definition, find all references and alike into the tool. O objetivo do protocolo é permitir que o Suporte de linguagem de programação seja implementado e distribuído independentemente de qualquer editor ou IDE dado. O protocolo Language Server foi originalmente desenvolvido para o código Visual Studio da Microsoft e agora é um padrão aberto. A Microsoft colaborou com a Red Hat e a Codenvy para padronizar a especificação do protocolo.
antes da LSP, havia diferentes IDEs para diferentes idiomas (ainda existem muitos). Todos os IDEs tinham integração específica da linguagem (realce de sintaxe, auto-completação, ir para a definição, etc Características). A situação é muitas vezes referida como um problema M × N, onde o número de integrações é o produto de M editores e n linguagens. O que o protocolo do servidor de linguagem faz é mudar este problema M × N em um problema M + N. A melhor coisa sobre LSP é que é totalmente independente do IDEs. Como resultado, podemos ver que o Visual Studio trabalha para tantas línguas diferentes através de extensões. Estas extensões fazem uso do LSP.
pode ler mais sobre a LSP aqui e ela ou ver este vídeo no YouTube para ver como funciona.
o servidor de línguas oficiais de Golang é gopls (pronunciado:: “go please”). Você pode verificar mais informações sobre o estado do gopls e seus recursos suportados.
🔌 NERDTree
Depois de configurar um monte de coisas no seu Vim, uma coisa que você provavelmente ainda falta o mais é “Janela Lateral”, onde você pode procurar seus arquivos de projeto facilmente. O totó apanhou-te. NERDTree é um explorador de Sistema de arquivos completo, que ajuda a navegar visualmente seus arquivos usando uma janela lateral estilo árvore. Com o NERDTree, você pode abrir rapidamente arquivos para leitura ou edição, e executar operações básicas do sistema de arquivos.
instalação e montagem
pode instalar NERDTree igual a vim-go e coc.nvim. Basta adicionar
Plug 'preservim/nerdtree'
a.vimrc
e executar:PlugInstall
ou executarvim +PlugInstall
a partir da linha de comando.além disso, você pode checar FAQs wiki para Configurações. Minhas configurações para NERDTree é semelhante ao:
Você pode abrir um diretório em vim usando
vim .
(semelhante acode .
para VSCode). Você pode alternar entre NERDTree e seu código usandoCTRL+ww
ouCTRL+w+ArrowKey
. A NERDTree tem documentação incorporada, você pode verificá-las carregando em?
quando você estiver na janela NERDTree.Esta é a forma como a minha Vim instalação parecido com NERDTree:
Você pode dar uma olhada no meu
.vimrc
e vim scripts no GitHub em jogendra/dotfiles/vim.Aqui estão alguns links que irão ajudá-lo a começar com Vim:
- Openvim-Interactive Vim Tutorials
- Best Vim Tips by Fandom
- Why, oh WHY, do those nutheads use vi?
- colecção de artigos de viagem por thoughtbot
- spf13-vim-a última distribuição Vim
- Vim Cheatsheet
- Vim Tab Madness. Buffers vs Tabs
pode simplesmente executar vimtutor na sua linha de comando executando
vimtutor
comando. Ele vai abrir tutoriais Vim e ajudá-lo a começar com ele.linhas de fundo
usando vim é divertido. Inicialmente, você pode enfrentar algum problema usando-o e você pode ter que aprender a usá-lo, mas definitivamente vale a pena aprender. Pelo menos você pode continuar a aprender vim ao lado de usar uma IDE. Comece com o mínimo e construa um pouco nele todos os dias. Há um monte de plugins disponíveis para tudo que você precisa com Vim. Usar o vim para o desenvolvimento do Golang é super agradável com o plugin vim-go. Não é bom ter tudo num só lugar e ser mais produtivo?Obrigado pela leitura. Compartilhe com seus colegas / amigos. Podes contactar – me no Twitter.