Autor do post original em russo: varanioVocê pode ter lido um
artigo recente
sugerindo que o vim é muito diferente dos IDEs , devido à sua velocidade de digitação supostamente baixa.
Lembremos que a principal mensagem desse artigo era que o recurso matador do vim consiste em seus modos que superam todo o resto. Dito isto, o autor reconheceu que o IntelliJ IDEA e outros IDEs fornecem teclas de atalho e outra experiência do usuário que pode ser facilmente usada. No entanto, como eles não têm modos, o vim deve ser a primeira escolha de todos.
O autor então sugere que, em vez de pressionar as teclas
ctrl+arrows
para mover-se entre as palavras, é mais fácil pressionar Esc, e depois voltar ao modo de edição. Compreensivelmente, todo esse problema porque o autor acha
inconveniente manter pressionada a tecla ctrl
.
Eu sei que os artigos que criticam o vim recebem muitos votos negativos, mas eu só tenho que falar.
Suas linhas de código são tão longas que seu dedo fica cansado segurando a tecla até o ponto em que você realmente precisa de modos? É possível obtê-lo quando você digita uma constante longa - nesse caso, você pode pressionar Caps Lock e digitar seu nome. Mesmo assim, dificilmente pressiono essa tecla mais de uma vez por ano. Mas alternar os modos para avançar e avançar algumas palavras, e muito menos chamar o recurso matador do vim, parece um pouco exagerado.
A propósito, no IntelliJ IDEA, você pode alterar o caso de uma palavra (ou o texto selecionado) com uma tecla, para que também não exija o uso do Caps Lock.
Admito que o vim pode ser bom para editar arquivos de configuração em um servidor remoto. Além disso, o vim pode ser ótimo para novos idiomas que ainda não foram usados pelo JetBrains. Escrever plugins personalizados é mais fácil para o vim (mas em 99% dos casos você não precisará deles com um IDE adequado). Talvez seja mais conveniente para editar textos longos. Mas isso é irrelevante para a codificação industrial padrão!
Eu deveria mencionar imediatamente vários pontos aqui.
O Vim pode ser transformado em um tipo de IDE instalando plug-ins e aprendendo teclas de atalho para operá-los
Pode de fato, mas por que alguém se incomodaria?
Parece um desafio estranho, considerando que os IDEs têm tudo e com uma experiência muito mais amigável. Você não terá que usar um mouse, eu prometo!
Deixe-me explicar a coisa com a edição sem o mouse, usando um exemplo. Primeiro abro o IntelliJ IDEA e crio um novo arquivo.
Pressiono p, e o IDE imediatamente solicita uma sugestão da palavra pacote. Tudo o que preciso fazer é pressionar Enter para inserir o pacote da palavra no texto dentro do editor.
Então eu pressiono
c
, e o IDE sugere classe de uma só vez.
Habr
o nome da classe (por exemplo,
Habr
), digite a chave
{
e o IDE completará automaticamente a chave de fechamento logo atrás do cursor.
Então digito pu, e o IDE entende que provavelmente é público. Digito
H
e pressione
Enter
para obter o Habr, porque o IDE já conseguiu que eu quero criar um construtor.
Eu continuo escrevendo o corpo do construtor, por exemplo, chamo o método init (), que ainda não existe. Meu IDE o destaca com a cor vermelha, o que indica que esse método não existe. Depois de pressionar
alt-ENTER
, o IDE inserirá o trecho de código no lugar certo:
private void init() { }
Se eu digitar o
new Habr(5)
dentro desse método (a palavra Habr também foi solicitada, é claro), ou seja, se eu tentar chamar um construtor inexistente, o IntelliJ IDEA destacará esse pouco imediatamente, então apenas pressione
<alt-ENTER>
e escolha o que exatamente eu quero fazer: se é para adicionar um argumento int ao construtor ou adicionar um novo construtor com um parâmetro int. Eu escolhi a última opção e o IDE adiciona imediatamente um novo construtor após o primeiro:
public Habr(int i) { }
Não mencionarei o recuo automatizado e outros recursos que ajudam a editar o código, uma vez que naturalmente eles estão presentes.
Aqui está o que eu consegui no final:
package x; class Habr { public Habr() { init(); } public Habr(int i) { } private void init() { new Habr(5); } }
Tudo o que fiz foi literalmente pressionar algumas teclas e a
<alt-ENTER>
atalho
<alt-ENTER>
.
Não instalei nenhum plug-in.
Eu não tive que treinar por um mês para poder fazer isso.
NUNCA TOQUE NO MOUSE (usei o Caps Lock aqui não porque queria gritar como um maluco, mas porque era divertido experimentar o recurso).
Não mudei para nenhum modo e não precisei recuperar nenhuma combinação de teclas ou botões. O único que eu usei foi
<alt-ENTER>
(mas isso dependia do contexto, uma espécie de tecla de atalho "solução de problemas").
Se você odeia usar o mouse, pode navegar pelo código usando teclas de atalho especiais, como saltar para a classe, arquivo, método, número da linha, etc.
Você pode selecionar o texto pressionando repetidamente
<ctrl-W>
para selecionar a palavra atual, o texto atual entre chaves, etc.
O Vim permite que você pule para um personagem em particular. Por exemplo, você pode obter uma letra x na linha de texto sem tocar no mouse. No entanto, um IDE também oferece essa oportunidade pressionando
<ctrl-f>
e digitando a parte necessária do texto. A propósito, esse também é um tipo de modo. É chamado de modo de pesquisa, duh!
Também não preciso do mouse para pular para a chamada de função correta e, novamente, sem o mouse (pressione
ctrl-b
), para pular para a descrição dessa função.
O Vim possui vários recursos exclusivos de edição que estão ausentes nos IDEs
- Vá para o parágrafo seguinte / anterior.
Sim, parece um recurso útil para um IDE. Mas antes para editar artigos para Habr do que para codificação real. - Mover para o próximo caractere de espaço.
Bem, você pode chamá-lo de um recurso útil, mas não muito legal. A pressão repetida das ctrl+arrows
produzirá o mesmo efeito. - Salte meia página para cima / baixo.
Ainda não decidi se preciso deste para qualquer coisa. - Saltar para a primeira / última / linha do meio na tela.
Realmente não vejo para que serve isso. Ou seja, pode ser útil por algum tempo, mas não é de forma alguma um recurso matador. - É possível excluir exatamente N linhas de código.
Sim, certo, eu faço isso todos os dias. Todo mundo precisa excluir exatamente 19 linhas de código de tempos em tempos, certo?
Eu não sou de forma alguma um vim guru, por isso posso ter perdido alguns aspectos-chave. Por favor, compartilhe seus pensamentos na seção de comentários. Sim, é claro que existem milhões de plugins em cima disso. Mas os IDEs também os têm e em quantidades comparáveis.
Sumário
Aqui está o meu próprio afastamento disso. Vou ficar longe do vim quando se trata de edição de código, não importa o que você diga. Não fiquei muito impressionado com o uso de modos em vez de pressionar ctrl ou mesmo
ctrl-alt-shift
. Os IDEs oferecem mais recursos prontos para uso, sem a necessidade de gastar um tempo aprendendo e atribuindo
teclas de atalho . A maioria das tarefas diárias pode ser realizada com um IDE, aprendendo apenas algumas teclas de atalho. Você pode até ignorá-los completamente se estiver feliz usando o mouse.
Há muito tempo foi estabelecido que um programador leva mais tempo para aprender código do que realmente escrevê-lo. Portanto, se você usa o mouse ou não, não faz grande diferença. No entanto, deixe-me reiterar que os IDEs permitem que você faça quase tudo (se não tudo) sem usar o mouse.
O Vim funcionará melhor que o nano para editar remotamente os arquivos de configuração em um servidor, desde que as seguintes condições sejam atendidas:
- Você precisa ter uma boa aderência do vim.
- Você precisa editar quantidades industriais de arquivos de configuração para sentir a vantagem. Se você só precisar fazer alterações em um arquivo de configuração uma ou duas vezes por mês, o nano ou qualquer outra coisa funcionará bem.
Você pode começar a votar para baixo ou, melhor ainda, oferecer seus contra-argumentos :).