Executando verificação de segurança...
9

Por que usar Vim (ou NeoVim)?

Fala pessoal! Por tempos venho tentando entender um movimento que vejo na internet, principalmente de devs criadores de conteúdo, onde tentam empurrar a idéia de que o Vim deveria ser o seu editor de código padrão. Diversas vezes tentei utilizar mas sempre acabo voltando para o VsCode porquê sinto que é uma complicação desnecessária...

Me parece que usar Vim é ignorar todas as conveniências que temos com outros editores, como o próprio VsCode e isso só fica mais escancarado ainda quando vejo que todos esses devs que utilizam Vim, enchem o editor de plugins e passam horas e horas configurando para, no final das contas, se aproximar das funcionalidades padrão do VsCode.

Talvez seja apenas minha visão ou falta de prática, mas ainda não consigo utilizar exclusivamente o Vim para trabalhar com meus projetos. Acabo usando uma vez ou outra quando preciso fazer alguma edição simples, mas, no final das contas, VsCode ainda é meu editor favorito.

Claro que existem devs que são mais habituados e preferem por utilizar o Vim, por quaisquer sejam os motivos, mas também não deixo de pensar que todo esse fuzuê é primariamente para criar conteúdo na internet e fazer vídeo de coding no YouTube kkkkkkkkkk. A mesma coisa serve pra galera que faz vídeo de extensão do VsCode.

Este post foi mais um "desabafo", pode ser que não agrade a todos, mas pensei em publicar aqui para compartilhar meu pensamento e tentar trocar ideias com vocês para descobrir se existem mais pessoas com esse mesmo sentimento.

Valeuu!

Carregando publicação patrocinada...
6

Uso Neovim há mais de 1 ano como editor padrão e antes disso já tinha tentado usar Vim algumas vezes, mas ter que configurar as coisas em vim script sempre me fazia voltar para o VS Code. Aqui vai alguns pontos que eu acho importante (não vejo conteúdo BR tirando Akita e Filipe, então talvez sejam coisas comentadas, mas não tenho conhecimento):

  • Se quer um editor de texto que faça as coisas do VS Code, você quer um VS Code e não outro editor de texto. Não tem sentido mudar sua ferramenta para outra se quer que a outra seja a igual a sua atual. Se está mudando, espera-se, pasme, mudanças.
  • Se não quer perder tanto tempo configurando Neovim, mas quer aproveitar as keybinds, é só usar um emulador no seu editor atual. Acho o do VS Code podre, mas o da JetBrains é bom. Se realmente quiser o Neovim, existem as chamadas distros (ex.: LazyVim), que já vêm com várias coisas instaladas por padrão e deixam adicionar outras por fora.
  • O propósito de um editor de texto é justamente ter poucas funcionalidades, infelizmente, por algum motivo, o editor mais conhecido é VS Code, mas vendo Sublime e Notepad++ é possível perceber como são simples e com uma barreira menor que (Neo)Vim. Eu mesmo não uso uma distro, configurei do zero, lendo documentação e tudo mais, porque eu tenho no meu editor apenas o que eu sei que preciso/quero. O VS Code vem com um monte de funcionalidades e para se tornar "funcional" ainda tem que colocar mais plugins. É um intermédio de IDE e editor de texto horrível, sendo ruim nos dois casos: não é leve e mínimo como um editor e nem tem todas as funcionalidades de uma IDE especializada em alguma linguagem.
  • Minha mudança de VS Code para o Neovim teve muito a ver com o fato do LSP de C ser extremamente lento.
  • Depois que entrei nesse buraco de Vim, comecei a usar as keybinds para tudo e acho muito gostosinho. Uso Vimium para mexer no navegador e a maioria dos programas ou sites focados em escrita tem o modo vim possível de ativar nas configurações (ex.: LeetCode, Obsidian).
  • Usar Neovim me fez realmente aprender a usar meu editor, saber os atalhos e como as coisas estão funcionando. Você precisa usar Neovim para aprender essas coisas? Não, mas também não existe estímulo de aprender quando você usa editores que deixam tudo abstraído, mesmo sendo possível.

No fim das contas o importante é escrever código, independente do meio que você prefere.

Todas as minhas opiniões são baseadas no meu uso de Neovim em Linux e não posso afirmar se em Windows é tão bom quanto.

1

Gostei da sua visão, me parece ter uma experiencia mais refinada, poderia me explicar melhor a diferença entre IDE e editores como sublime e notepad++ e suas compatibilidade com as linguagens, estou aprendendo spring e vejo por ai falarem de necessidade de usar ferramentas como intellij ou sts como se fosse quase que obrigatorio, mas particularmente prefiro ambientes mais simples

2

diferença entre IDE e editores como sublime e notepad++

A diferença não é tão clara assim. Aliás, a própria definição de IDE é meio controversa, inclusive já teve este tópico discutindo o assunto: O que é um IDE e um editor de texto?

Sugiro ler tudo que tem lá, e aí entenderá que a distinção entre um e outro não é muito clara, existem vários tons de cinza e envolve muito mais opiniões do que fatos.

1

Outra resposta a esse comentário já respondeu sua questão de diferença entre IDE e editor de texto.

Quanto a ter que usar IntelliJ para programar em Java eu não consigo lhe ajudar. O pouco que sei de Java é falando isso também e eu, sem dúvidas, acho as IDEs da JetBrains as melhores atualmente, mas não consigo lhe dizer uma alternativa mais simples que tem um bom acervo de ferramentas. No caso de Neovim, por exemplo, o tooling de Java e C# são bem ruins, porque no final das contas é algo que depende da comunidade se propor a fazer as coisas, e ela, aparentemente, já se considera bem servida com IntelliJ e Visual Studio. Seja você o pontapé inicial e programe um bom LSP de Java no Neovim kkkk.

5

Um tempo atrás eu testei o Neovide, nada contra a ferramenta, mas é bem isso que você falou. Você perde horas e horas para tentar se aproximar do que o VsCode faz hoje sem plugins. A minha motivação na época era consumir menos processamento e memória, mas com base nos testes que eu realizei, não teve diferença ao ponto de ser notório.

Muita gente faz isso com a mesma premissa do distro hopping (ficar mudando de distro linux), nada contra isso, é até muito divertido configurar seu editor de texto do zero e fazer as suas modificações, mas isso não pode interferir na sua produtividade, que foi o meu caso kkkk.

E outra coisa, muito massa os key bindings do Vim e a maneira em que é feita a movimentação, mas só funciona no Vim. Já procurei plugins para o chrome, para o linux mas tudo me pareceu uma grande gambiarra. É por esse e outros motivos que permanesso no VsCode no geral e Visual Studio 22 para projetos C#.

3

Exatamente isso! Também não tenho nada contra, só não vejo sentido no uso se a ferramenta não vai me deixar mais produtivo ou proporcione alguma funcionalidade que eu não tenho em outra.

Sobre o uso de recurso, não cheguei a fazer um comparativo, mas para quem tem um PC mais fraco, se tivesse uma redução significativa do uso de RAM e CPU seria um ótimo motivo para migrar de editor.

Os key bindings no Vim é uma parada interessante tbm, mas as vezes ainda me confunde um pouco, creio que por falta de prática.

Hoje utilizo bastante o VsCode e IntelliJ pra projetos Java.

3

Vou dar apenas uma opnião cheia de falhas:

1° ponto: As pessoas estão muito extremistas, ou vivem totalmente imerso no tradicional ou totalmente imerso no moderno excluindo as qualidades do outro lado, mas com meu pouco conhecimento aprendi que voce consegue unir o melhor dos dois mundos. Muitos devs tambem necessitam se sentir superiores por conseguir realizar um trabalho do modo mais dificil ou mais "raiz" possivel

2° ponto: Por muito tempo os computadores foram utilizados via linha de comando atraves de terminais, dai os devs mais oldschool se acostumaram, conforme voce vai envelhecendo, voce vai perdendo a disposição de se adaptar a tecnologias e ferramentas novas, a idade vem, mais responsabilidades e voce acaba correndo de tecnologias nao triviais, editores como vim são otimos sim e tudo e questão de costume, o problema e voce esta atolado de tarefas (profissionais e pessoas) e ter saco para aprender algo diferente sabendo que vai melhorar um pouco sua vida mas não melhora la de fato, usar algumas funções via terminal são mais faceis, mas combinar terminal e GUI voce consegue aproveitar o melhor dos dois mundo.

Respondendo mais diretamente sua pergunta: a ide que voce vai utilizar é apenas uma ferramenta para auxiliar na hora de voce escrever um código, a diferença mais basica entre elas é a quantidade de recursos extras como cores, formatadores, debugadores e pluguins para te poupar alguns trabalhos mais maçantes como identação automatica por exemplo ou fechar blocos de maneira automatica, o Vim por ser mais antigo é bem mais leve e voce acaba economizando fragmentos de segundos na hora de carregar um arquivo, alternar e tudo mais, pelo que pude observar tambem os atalhos para a navegação são bem diferentes, no final acredito (no meu humilde conhecimento) que é mais questão de costume.

Detalhesinho: ferramentas mais simples tendem a ser mais confiaveis pois quanto menos elementos, menos chance de bugs

3

Concordo com vc. Acredito que existem casos e casos, não da pra ser extremista com tudo, mas o que eu penso que deve ser mais considerado nessa balança é a questão da necessidade x produtividade.

Se um editor te atende e vc está habituado com ele, siga em frente! Como vc disse, é apenas uma ferramenta. A minha indagação é mais sobre essa forçação de utilizar Vim e no fim das contas a pessoa instala e configura tanta coisa para usar a ferramenta sendo que se vc utilizar qualquer outro editor, já teriam as funcionalidades out of the box. Isso não faz sentido pra mim.

Sobre economia de recurso, não fiz nenhum tipo de comparativo, mas durante o meu uso, não percebi nada significativo. Talvez isso seja mais notável em PCs com hardware mais limitado.

Mas é isso, cada um usa o editor que melhor lhe atende. Vim ainda não me pegou, mas pode ser que eu mude de opinião no futuro kkkkkkkkk.

2

Tem um video do akita, nao lembro qual, mas ele fala que o maior motivador dele usar o vim/neovim e para tudo carregar instantaneamente na tela, pelo que pude observar profissionais mais experientes, em todas as areas mesmo tendem a buscar cada migalha de produtividade mesmo que tenha um custo sobre outras caracteristicas, a maioria dos devs mesmo acredito que seja por ego ou algum tipo de delirio coletivo, ciradores de conteudo tambem tendem a falar mais do que vai dar hype e não do que gostam de verdade

2

Isso realmente tenho que concordar, é sensacional a responsividade do Vim, alias, é um dos pontos principais dos quais as vezes ainda tento usá-lo, também pelo fato de usar apenas o terminal para todo o workflow, mas ai eu enrosco em alguma coisa besta e preciso procurar "como fazer tal coisa no Vim" e as respostas geralmente são algum plugin, configuração ou um key binding específico e isso já me da uma desmotivada, pq pra fazer algo que as vezes é trivial, eu preciso parar e desviar meu foco pra procurar como fazer.

Criador de conteúdo sempre vai pelo hype mesmo. O hype da like kkkkkkkkk

3

Particularmente, não assisto a muitos vídeos de influenciadores de tecnologia, por isso não percebo os criadores de conteúdo promovendo essa ideia.

Vejo vantagens em ambas as ferramentas. Por exemplo, o VSCode é mais simples de configurar como editor principal, mas em um servidor, você não terá o VSCode à disposição. Nessa situação, é necessário ter um conhecimento básico de VIM. Um exemplo eu uso o Postman; já ouvi argumentos como: "E se você precisar fazer uma requisição e não tiver a ferramenta? Por isso eu uso CURL." Para mim, essa justificativa para usar CURL é facilmente refutável, mas é apenas um exemplo.

Contudo, é importante lembrar que essas são apenas ferramentas. De fato, há pessoas que são mais produtivas usando VIM ou outros editores mais antigos. A pessoa mais produtiva que conheço, por exemplo, usa VIM. Afirmar que ela seria mais produtiva com um editor como o VSCode seria puro achismo. Considero uma habilidade saber usar VIM e ser produtivo com ele, talvez eu fosse mais produtivo se usasse o VIM, mas isso também não deixa de ser uma suposição.

Concluindo minha ideia, sinceramente não entendo os defensores de ferramentas, principalmente porque o que realmente agrega valor (no caso de um desenvolvedor) não vai ser a ferramenta em si, mas o produto final (neste caso, o código ou qualquer coisa criada com o editor de texto). Afinal, são apenas ferramentas, e é inegável que algumas pessoas se adaptam melhor a editores "raizes" enquanto outras preferem os mais modernos.

1

Concordo, o editor que vc vai usar não vai ter impacto nenhum na qualidade do código que vc está escrevendo, afinal é só uma ferramenta.

Acho muito válido e necessário ter uma noção mais aprofundada das coisas, principalmente das tecnologias e ferramentas que vc utiliza no trabalho pra não ficar numa camada de abstração muito grande e ter apenas um conhecimento raso. Eu quando precisava conectar em algum ssh geralmente utilizava o Nano pq achava mais intuitivo que o Vim, mas hoje em dia isso é indiferente.

O negócio não é defender uma ferramenta x ou tecnologia y, é utilizar o que supre suas necessidades e melhor te atende.

Agora, sobre produtividade, eu precisaria de um tempinho considerável de prática para fazer as coisas no Vim para ter a mesma produtividade ou uma fração a mais do que em outros editores, mas isso é exclusivamente por que não estou habituado com a ferramenta, ai isso acaba pesando um pouco na balança quando paro e penso se eu preciso mesmo disso, por isso meu questionamento.

2

Eu comecei a migrar do vscode pro Neovim a um tempo, por diversos motivos, e pra ser bem sincero, não me sinto mais produtivo no vim do que no vscode, o principal ganho foi não ter que trocar de aplicação, eu passo muito tempo no terminal, então não perder o tempo que o vscode leva pra abrir(dependendo do tamanho do projeto) valeu muito a pena, principalmente quando você preciso ficar trocando muito entre projetos. Mas após 1 ano usando o vim eu posso dizer que sou tão produtivo no vscode quanto sou no vim.
Só mais um detalhe, não uso vim pra tudo, pra java/PHP eu prefiro usar as ides da jetbrains que são fantásticas a usar o vim.

1

Esse é um dos motivos pelos quais eu ainda tento mudar para o Neovim de vez em quando kkkkkkk. O fato de usar apenas o terminal para todo o fluxo de trabalho acho massa demais, mas ai sempre chego num ponto que eu fico me perguntando "pra que?", ai largo mão.

1

Te entendo, mas sendo bem sincero, se você consegue fazer tudo sem usar o terminal, está tudo bem. Conheço Devs incríveis que não usam nem o Git pelo terminal.
Eu uso muita coisa pelo terminal, pq sempre usei Linux(esses últimos anos que migrei pra windows com WSL), então acabei pegando o costume de fazer tudo via terminal, durante muito tempo usei o nano como editor, pq não gostava nenhum um pouco do vim.

2

Eu passei a usar o neovim por que eu tava tendo dores na mão e quis testar se usando menos o mouse iria diminuir as dores, pelo menos para mim funcionou. Outro motivo foi ter que ficar acessando servidores e as vezes ter que alterar arquivos. O terceiro motivo seria que eu enjoei a cara do vscode kkk.
Em questão de produtividade talvez seja a mesma do vscode.
Ainda uso o vscode se tenho que ler apenas um arquivo de forma rápida, mas o neovim é o meu principal editor.

1

Cara, muito interessante isso, nunca tinha pensado nesse aspecto de ergonomia. Realmente o design padrão de um mouse não é nada ergonômico... ainda não tive esse tipo de problema (espero não ter kkkkkk).

Muito massa esse ponto de vista.

1

Também não entendo. Se posso usar uma ferramenta mais visual, completa, pronta para uso como o VS Code ou WebStorm, pra que vou perder tempo montando uma IDE?

Ainda mais nos tempos de hoje que memoria RAM está tão barata, a justificativa de "é mais leve" não compensa o desperdício de tempo.

1

Também não entendo. Se posso usar uma ferramenta mais visual, completa, pronta para uso como o VS Code ou WebStorm, pra que vou perder tempo montando uma IDE?

Esse é meu principal questionamento hahahahah

1

Eu uso o lunarvim e VIM Motions no VSCODE. Às vezes me dá uma preguiça de configurar o SSH no VSCODE pra acessar a EC2, e ai eu aprendi os comandos que eu julguei mais relevantes do VIM. No geral, é importante ressaltar que isso nao vai te tornar um melhor programador, te torna mais ágil para fazer algumas coisas. Mas tem o custo do aprendizado.

Usar o VIM MOTIONS como VSCODE me deixou mais feliz do que usar o VIM puramente

2
1

Salve! Realmente, vejo que está rolando uma onda crescente no uso do nvim como editor de código padrão.

Eu meio que fui forçado a migrar pro nvim porque meu computador (Mac M1) não estava mais aguentando a aplicação com a qual eu estava trabalhando, e isso estava exigindo muito processamento. Então, eu precisava de algo que fosse rápido e consumisse menos recursos.

Alguns chamam esse movimento de New Wave Programming, e acredito que tem muito a ver com outro movimento de customização de ambiente, tipo o subreddit unixporn. Acho que é mais um movimento para trazer aquela sensação de pertencimento a algo maior.

Afinal, depois de passar horas configurando seu ambiente nvim, você acaba desenvolvendo um apego maior e sente a necessidade de compartilhar suas experiências com outros. Isso faz com que você se integre a uma comunidade, criando laços e trocando conhecimentos.

Sem falar que é aesthetic pacas uahuhauha

imagem

1

Eu tenho um computador igual, esse foi um motivo tbm pelo qual quis tentar migrar para o Neovim, as vezes preciso ficar rodando front e back ao mesmo tempo e acaba pesando pelo front ser em Angular e o back em Java, ai não tem quem aguenta com 8GB de RAM kkkkkkkk. Por ser um chip integrado, o swap de memória é muito rápido e as vezes imperceptível, mas não é legal ficar sempre nesse limiar de consumo de recurso.

Acredito tbm que esse sentimento de pertencimento de uma comunidade tbm pese bastante pra galera, pq de fato é bem massa. Eu mesmo já fui um dos que passava horas e horas customizando uma distro linux pra deixar com a minha cara, mas chega uma hora que eu paro e penso "mano, pra que?" kkkkkkkkkkkkk.

Não julgo, mas hj em dia eu priorizo outras coisas.

Aesthetic é a palavra hahahahaha

1

Exato auhauha já me peguei muito parando e pensando "por que to querendo mudar o estilo desse negócio?". Hoje montei um ecossistema 100% no terminal que me agrada muito, simples, rápido, eficaz e agradável aos olhos.

E é isso, embora o mac seja muito bom principalmente depois do M1, quando a coisa vai escalando o bicho come, e como não tenho grana pra ficar trocando de mac vou tentando salvar ao máximo o que tenho kkkkk.

Hoje preciso rodar códigos nativos Android e iOS, vulgo Kotlin e Swift, Docker e além dos simuladores de cada um.

1

Olá, o seu argumento é válido.

Utilizo o neovim/Lazyvim (aquele que não precisa perder horas configurando) faz quase um ano. Tinha dores no pulso recorrentes e depois que adotei o teclado split ortolinear com "vim" estou muito contente com o resultado e produtividade. Já usei muito Intellij e VSCode mas me encontrei na configuração atual, tanto que utilizo as keybinds no vim no Obsidian. Gosto da rapidez e liberdade que o modo de trabalhar com o teclado me propõe.

Como dizem, não existe bala de prata. O que for melhor para você é o que vale.

Sucesso pra ti.

2

Legal, mano! Um outro colega comentou um ponto sobre isso também. Nunca havia pensado por esse lado da ergonomia, o fato de usar apenas o teclado pode evitar uma lesão mesmo, já que um mouse comum não tem ergonomia nenhuma.

No final das contas é isso mesmo, se uma ferramenta supre suas necessidades e te atende bem, manda bala!

Sucesso pra nós!

1

Eu uso por ser mais rápido, quando vou criar scripts pequenos ou editar um arquivo de configuração tipo um /etc/default/grub. Faço tudo pelo teclado sem usar o mouse, ainda mais que uso muito o terminal.

0
1

O mundo dev tem modinhas de tempos em tempos.
A atual é "você tem de usar vim".
O que importa é se você consegue o não ser produtivo nele.
E sim, esse fuzuê é pra ter engajamento nas redes sociais.

0

Eu há um bom tempo entrei na fase "CAGANDO e ANDANDO" para idéias radicais.... Linux x Windows x Mac, Postgres x Mysql, Java x O mundo.... E tantos outros..
Eu usei o VIM muitos anos e foi muito bom, principalmente em situações que estava no servidor e precisava abrir um arquivo rapidamente e nao tinha acesso gráfico. Sempre me atendeu bem.
Hoje no meu dia a dia minhas ferramentas prediletas sao da JetBrains, PHPStorm, RustRover são as que uso mais.
Mas nada contra VSCode que acho maravilhoso, mas não uso tanto.
Gosto muito do Visual Studio também.
Mas enfim.... É algo bem pessoal e tudo é tecnologia... Cada um escolhe o que gosta.
Em alguns casos a empresa tem suas normas e ferramentas, o que não tem problema nenhum.

Acho uma perda de tempo as brigas por estes temas..... Perda de tempo total.

Parece aquele dialogo..

  • Programador 1: Meu pau é maior que o seu!!!

  • Programador 2: É maior, mas é fino...

E por ai vai... Sempre tem os contra pontos. kkk

Grande abraço.

-2