Como Vim roubou meu coração

Eu acho que o nome implica que hoje vamos falar sobre o Vim! O que é isso Por que isso é necessário? Como usá-lo?


Muitos que leram meu artigo anterior poderiam exclamar:



De fato, tal prática pode ser considerada desnecessária. Para meu profundo pesar, mesmo agora haverá pessoas que raciocinarão da mesma forma. Para quem não conhece, vou explicar: o Vim é um editor de texto antiquado que funciona no terminal e possui uma abordagem não-padrão para editar e digitar.



Surge uma pergunta justa: "Por que usar o programa antigo em 2018, e mesmo sem uma interface gráfica?" A resposta é simples - é conveniente. Eu concordo, então você pode dizer absolutamente sobre qualquer editor, mas ainda assim esse caso é muito incomum.

Para começar, não, Vim não tem idade - ele tem apenas 27 anos. Ele é o herdeiro do clássico editor de Vi. É melhor adaptado aos sistemas modernos e possui uma ampla gama de recursos. Em outras palavras, seu nome (Vi Melhorado) é totalmente justificado. Também quero observar que há uma implementação ainda mais nova das mesmas idéias - neovim.

Qual a diferença?



Se você olhar vídeos diferentes do YouTube sobre esse tópico, eles geralmente falam sobre o componente metafísico da questão. Ou seja, sobre a diferença de ideologias, formas de desenvolver projetos e assim por diante. Não há diferenças fundamentais para o usuário final. No entanto, dois pontos podem ser esclarecidos: alguns plugins são mais fáceis de instalar no neovim, além de separar a interface do usuário do núcleo do programa. Vou explicar mais detalhadamente sobre o segundo.

Eu acho que entre vocês, pessoas (e gatos) que sempre respondem à oferta de mudar para outro editor como este:



Bem, o neovim corre para o resgate! Graças a ele, agora em muitos IDEs modernos e "notebooks de programadores" existe um emulador da funcionalidade do Vim. Assim, você pode continuar usando seu Sublime Text ou CLion favorito com todos os seus plug-ins, ao mesmo tempo aumentando visivelmente sua produtividade em termos de escrita de código e começando a ter mais prazer com isso (mais sobre isso mais tarde). Também é uma boa maneira de aumentar as Perguntas frequentes, porque "hackers reais usam o Vim ou o Emacs".

"Bem, eu decidi tentar estudar algum editor vintage, mas por que o Vim, e não pelo menos o mesmo Emacs?" Bem, esta é uma questão controversa. O Emacs é uma solução mais poderosa que pode fazer qualquer coisa (você pode até jogar uma cobra nela). No entanto, sua força também é sua fraqueza. É muito extenso e complexo, o que se traduz em uma maior complexidade de desenvolvimento e exatidão do ferro. O último argumento pode parecer tolo agora, porque também é um editor de console, mas em várias tarefas (como conexão remota via SSH) esse momento pode se tornar crítico.


(Usuários do Emacs após essas linhas)

Bem, descobrimos o que é o Vim, mas resta entender por que e como usá-lo.

"Por que todos gostam tanto do Vim que o adicionam sempre que possível e até onde é impossível?" (A propósito, o Emacs também o possui. Parece-me cada vez mais que é mais fácil listar coisas que não estão lá, mas isso está fora de tópico.) A resposta a essa pergunta não é difícil - sua filosofia.

Você não pode simplesmente iniciar e digitar texto no VIM. Existe um modo separado para isso - "Modo de inserção". Ao iniciar o programa, você se encontra no modo normal, no qual você tem a oportunidade de digitar comandos para editar texto e alternar entre os diferentes modos deste editor. "Mas é desconfortável! Eu quero apenas digitar o texto! Puramente tecnicamente, uma máquina de escrever também é adequada para esta tarefa, mas ainda responderei sem sarcasmo. Se a maioria dos editores se concentra em escrever código, o Vim muda para a edição de texto e o faz à sua maneira.


(Na verdade, esta imagem tem um subtexto profundo. Se houver um minuto, leia sobre a série Persona de RPGs japoneses.)

A coisa mais importante a entender ao aprender comandos do Vim é que eles geralmente não são isolados. Considere isso em toda a linguagem, onde eles são divididos em verbos, substantivos e adjetivos (modificadores). Na verdade, apesar de cada equipe ter um único personagem, cada um deles é análogo à palavra em inglês e sua sequência pode ser traduzida em uma frase completa!



Vejamos alguns exemplos, mas primeiro prenda outra foto (desta vez com algo útil):



1) d2w
==> Exclua duas palavras.



2) AMew<Esc>
==> Anexe ao final da linha "Mew" e retorne ao modo normal.



3) f(ci(Pakahontas<Esc>
==> Encontre um par de colchetes e altere o conteúdo interno para "Pakahontas" e retorne ao modo normal.



Está vendo? Absolutamente nada complicado! Obviamente, essa abordagem exige que você se acostume e pratique constantemente, pois você não pode aprender todas as combinações - você precisa senti-las. Eu escrevo código no Vim não porque é mais rápido digitar (eu já digito devagar, como você deve ter notado, e não sei cegamente), mas porque é mais natural. Em vez de um monte de ctrl, shift ou alt (existem comandos com eles, mas existem alguns), uma linguagem de edição muito compreensível e, mais importante, humana.


(Inesperadamente, certo?)

Mas antes de terminar, quero inserir alguns comentários:

I. Apesar do Vim poder usar as setas e o mouse (o segundo está configurado no arquivo "~ / .vimrc"), isso não é estritamente recomendado. Ele tem um mar de comandos mais interessantes para mover o cursor sobre o texto (e a tela), mas eles não são mais tão intuitivos quanto os comandos de edição e você precisa pressioná-los.


(É hora de invadir!)

II No Vim, como em muitos outros editores, existe um modo de comando que é chamado quando a tecla ':' é pressionada. O símbolo '!' tem um significado duplo:

a) Se estiver imediatamente após ':', um comando completo para o terminal poderá segui-lo. Embora alguns deles sejam duplicados como comandos do próprio editor, pode ser útil, por exemplo, chamar o compilador.

b) Se permanecer após o comando Vim, ele será executado sem salvar as alterações no arquivo. A propósito, isso está conectado a um bug (ou, se você desejar, a um recurso) - se você fez algo com o texto, mesmo que retorne ao estado original, o editor não fechará se você não o salvar ou especificar '!'.


(Você já sentiu como o Vim se importa com seus dados?)

III Várias configurações de editor e plug-in podem ser alteradas no item "~ / .vimrc" acima. Existem configurações para todos os gostos e cores, mas não estão no arquivo em si. Por padrão, está vazio. Para encontrar os parâmetros necessários, use o comando ": help". Depois disso, você pode adicionar o nome de um componente ou plug-in específico para acessar imediatamente as informações de seu interesse. Mas, é claro, a Internet ficará mais confortável nesse sentido.



IV Existem vários comandos no Vim (por exemplo, 'q') projetados para serem definidos (em "~ / .vimrc") pelo usuário. No entanto, se você tentar definir um valor diretamente para eles, eles serão acionados com um atraso, pois esperam um segundo comando após eles mesmos (eles devem ser determinados). Se você precisar de um comando de um botão, recomendo usar 's', porque sua funcionalidade é praticamente a mesma que 'c'. Substituto pode ser substituído, por assim dizer.



V. Equipe '.' possui um poder incrível neste editor. Ela sabe como repetir o comando anterior (ou uma frase inteira deles). Em princípio, se você não deseja gravar uma macro, é uma excelente ferramenta para preencher o código com "pastéis":



VI Vim me lembra alguns computadores antigos 48K ZX Spectrum. Eles também tinham comandos de um botão, mas eram para a linguagem de programação básica. Assim, os desenvolvedores tentaram reduzir a quantidade de RAM necessária para o programa.



Como material de treinamento, recomendo o programa vimtutor. Puramente tecnicamente, ele simplesmente abre um arquivo com um breve tutorial no Vim, mas essa abordagem permite praticar em paralelo com o estudo da parte teórica. E então pratique, pratique e, novamente, pratique!

Bem, na verdade, tudo o que eu queria dizer sobre o Vim. Honestamente, estou completamente encantado com este editor. Sua filosofia é muito contagiosa e semelhante ao sistema Unix como um todo (tudo é simples, claro e lógico, mas requer se acostumar e lembrar). Portanto, se você está procurando um bom editor de texto ou deseja obter uma nova experiência de edição de texto, não encontrará um lugar melhor.

Desejo a você felicidade, saúde e KDE para não cair!

Fontes
1) Sobre o tópico:
a) Na verdade, vimtutor
b) A foto com o teclado foi tirada do site do viemu
c) Eu também li um wikibook sobre este tópico.
2) Fora do tópico:
a) Sobre a série Persona no Youtube, existem muitos vídeos com suas análises detalhadas. Provavelmente os mais valiosos são os vídeos do Place kakala de Filinov , mas o autor até agora parou na segunda parte (não é um erro de digitação).
b) Sobre a Spectrum gravou recentemente um bom vídeo Dmitry Moiseev
c) O autor da foto da minha foto de perfil - Fluff-Kevlar

Source: https://habr.com/ru/post/pt426255/


All Articles