Pergunta

Há um bom tempo, li um artigo do criador do viemu, esclarecendo muitos dos equívocos sobre o vi, bem como explicando por que é uma boa ideia (e por que tem sido muito popular nos últimos 30 anos).O mesmo cara também tem um ótimo conjunto de folhas de dicas gráficas que ensinam o básico algumas partes de cada vez.

Estou convencido.

Na verdade, estive convencido nos últimos 2 anos.Mas eu ainda não consegui me forçar a aprender o vi como meu editor principal, a curva de aprendizado é muito alta.Quando começo a trabalhar, a produtividade aceitável, mas imediata (usando meu editor atual), até agora superou a tremenda produtividade no futuro (usando o vi).

Alguém tem alguma boa dica para ajudar a superar a curva de aprendizado?Podem ser dicas diretas, algum outro tutorial ou artigo, qualquer que seja.

Editar:Observe que estou ciente do vim/gVim, Creme e MacVim (etc.) variantes de vi.Mantive minha pergunta sobre o vi para me referir à família vi como um todo.Obrigado por todas as ótimas respostas.

Atualização (abril de 2009)

Tenho usado o Vim (mais precisamente, MacVim) no meu dia a dia profissional desde dezembro passado.Eu não vou voltar :-)

Boa sorte a todos em seu domínio do Vim.

Foi útil?

Solução

Em primeiro lugar, você pode querer adquirir o Vim;ele possui um conjunto de recursos muito superior junto com tudo o que o vi possui.

Dito isto, é preciso disciplina para aprender.Se você tem um emprego e não pode arcar com o impacto na produtividade (sem ser demitido), sugiro fazer um projeto de fim de semana com o único propósito de aprender como editor.Mantenha a documentação aberta enquanto trabalha e seja disciplinado o suficiente para não se acovardar.À medida que você aprende mais, se torna eficiente e começa a confiar na memória muscular, não será tão difícil persistir.

Uso o Vim há tanto tempo que nem penso em quais teclas pressionar para pesquisar, navegar ou salvar.E minhas mãos nunca saem do teclado.Usar o Vim foi uma das melhores escolhas que fiz na minha carreira de programação.

Outras dicas

A primeira coisa que eu faria é colocar um pedaço de papel ou um livro sobre as teclas de seta e as teclas ins/home/end/pgup/down.Isso não é necessário no Vi.

Em seguida, eu me acostumaria a apertar ctrl+[ sempre que você dissesse para apertar escape.É muito mais rápido e você não precisa tirar as mãos do teclado.

Então eu assistia meus screencasts:

http://www.youtube.com/watch?v=FcpQ7koECgk

http://www.youtube.com/watch?v=c6WCm6z5msk

http://www.youtube.com/watch?v=BPDoI7gflxM

http://www.youtube.com/watch?v=J1_CfIb-3X4

Depois é só praticar praticar praticar.

editarA razão para evitar as teclas de seta é que elas atrasam você.Um dos maiores benefícios do Vim é a velocidade que ele permite.As teclas de seta também impedem que você realmente abrace a natureza modal, que é muito poderosa quando dominada.

Etapa 0: aprenda a digitar.Sério - se seus dedos não sabem onde estão as teclas, o vim será uma dor.E mesmo se você rejeitar o vim, a digitação por toque irá melhore sua programação (perguntar Steve Yegge ), fazendo com que a mente monitore o atrito do link sem problemas.Existe um muito de Programas que pode ajudá-lo a melhorar sua digitação.

Passo 1: usar vimtutor para você começar.Está no GVIM (no menu de ajuda, eu acho) ou você pode apenas digitar 'vimtutor' na linha de comando.Levará 30-45 minutos do seu tempo e, em seguida, seus dedos conhecerão o básico do VI/VIM e você poderá editar arquivos sem querer lançar o teclado pela janela.

Passo 2: use o vim em qualquer lugar.Ver essa questãoPara dicas e links para o uso de ligações de chave Vim e VI na linha de comando, do seu navegador da web, para compor emails, em seu IDE ...Você precisa usar o VIM para incorporar as principais ligações na sua memória muscular.

Etapa 3: saiba mais sobre o vim.Você só terá arranhado a superfície com vimtutor.Você pode Assista esse video ou leia Este artigo (ambos sobre os "sete hábitos de edição eficaz de texto".Você podelersobrepontasetruques sobreStackOverflow.Você pode navegar vimtips.Aprenda um litle frequentemente seria o meu conselho - há tanta coisa por aí que manter pedaços de tamanho de mordida será a melhor maneira de fazer o conhecimento ficar.

Passo 4: Lucro :)

Tenho sido um usuário intermitente do vim ao longo dos anos (fazendo trabalhos ocasionais de administração de sistemas).Recentemente comecei a passar mais tempo fazendo meu trabalho de programação nele.Eu sugiro começar com o gvim também.Ele se integra bem com a maioria dos ambientes de sistema operacional e (melhor ainda), você pode recorrer ao mouse quando precisar :).

Para começar com o vim, execute o vimtutor (empacotado com gVim) uma ou duas vezes (leva cerca de uma hora).Não posso exagerar o quão útil foi para mim!Especialmente as primeiras partes sobre as diferentes maneiras de percorrer um documento e como as ações de edição são gravadas com comandos de movimento, etc, etc.Depois disso, as coisas ficarão MUITO mais claras.

Em seguida, comece a fazer pequenas edições rápidas com ele (substituição do bloco de notas) até que você se sinta confortável o suficiente para fazer edições úteis em um clipe rápido.Em seguida, tente fazer seu trabalho diário nele.Você ficará ansioso pelo comando "repetir a última ação" em outros editores em um piscar de olhos!

Você pediu boas dicas para ajudar a superar a curva de aprendizado no editor de texto vi.Muitas das respostas anteriores sugerem que você não use outros editores.Acho que é um bom conselho.Mudar de um editor mais gráfico para o vi requer uma mudança de mentalidade.Requer pensar em termos de comandos, em vez de mudanças visuais.

Eu não usei nada além do vi por muitos anos e acredito que a única maneira de ser produtivo é memorizar os comandos que você usa regularmente.A maneira como fiz isso foi fazer uma pequena lista dos comandos de teclado mais comuns.Agrupei e codifiquei por cores esses comandos por função, ou seja, Movendo o cursor, editando, pesquisando, etc.Tive o cuidado de incluir apenas os comandos mais usados ​​que eu não conhecia.A ideia é criar uma referência rápida que também auxilie na memorização – e não substitua as telas de ajuda disponíveis.Então imprimi essa lista e colei-a na parede atrás do monitor para poder vê-la facilmente.(As folhas de dicas gráficas que você mencionou podem funcionar melhor para alguns, mas provavelmente são uma fonte de referência melhor do que uma ferramenta de memorização.)

Aqui está a chave. À medida que me senti confortável com um dos comandos, desenhei uma linha com um lápis.Eu ainda poderia vê-lo se precisasse, mas era um símbolo para mim ter dominado esse comando.Isso me deu confiança e motivação, pois pude ver um progresso regular.Depois de riscar a maioria deles, removi-os e adicionei alguns dos comandos mais raramente usados.Continuei esse processo até ficar satisfeito com meu comando do vi.Eu sabia que havia chegado a esse ponto quando percebi que há muito tempo não riscava nenhum comando ou mesmo olhava a lista.

Alguns anos atrás eu precisei trabalhar em uma plataforma UNIX onde o vi era o único editor disponível.Comprei um pequeno livro de referência de bolso sobre vi, mas quase não o usei.Acabei fazendo listas e postando na parede como fiz na primeira vez que usei o vi.No final da primeira semana, eu estava muito confortável, apesar de já terem passado cinco anos desde que usei o vi.

Para mim, o VI é um bom editor de emergência, mas não é algo que eu queira usar se houver alguma outra alternativa disponível.Sei que isso não é para todos, não estou dizendo que seja horrível nem nada, apenas prefiro uma interface de usuário detectável.

Mas você realmente precisa conhecer o VI se fizer algo significativo no Linux!

Então aprenda apenas o básico:i = inserir modo esc = deixar o modo de inserção: wq = salvar e desistir: q! = Não salve e desista x = Quando não estiver no modo de inserção, exclua o caractere./=pesquisa

Isso o ajudará em qualquer emergência de edição.Não há nada que você não possa fazer com esses poucos comandos (e com a navegação, é claro).O resto você pode “acrescentar” conforme necessário.

Porém, mantenha uma referência ou um livro disponível - quando você PRECISAR usar o VI, provavelmente não conseguirá navegar na web - mas a página de manual pode ser útil.

não se force.o caminho para o domínio do amor é.

Você deve começar com vim (Vi IMproved) e especialmente sua GUI - gVim.A GUI possui menus e no Windows você pode usar os atalhos de copiar, recortar e colar, para poder substituir o Bloco de Notas imediatamente.E como os menus exibem os atalhos (comandos vim), você pode aprender muito.

Outra coisa que você deve fazer desde o início é configurar o vi de acordo com suas necessidades.Por exemplo, você pode transformar o vim em um IDE Python.Ao fazer isso, você não terá desculpa para usar outro editor, pois o vi oferecerá tudo o que você precisa.

exclua todos os outros aplicativos de edição de texto.

Então você terá que aprender.

A maneira mais simples de força você mesmo pode ser apenas remover todos os outros editores de sua máquina.Livre-se da tentação :)

Cada vez que você estiver realizando uma tarefa de edição complexa, fique se perguntando se existe uma maneira mais eficiente de fazer isso.Na maioria das vezes, quando é algo que você pode descrever em termos simples (como "trocar parágrafos de texto" ou "excluir tudo após o caractere X nas linhas comentadas"), é algo que você pode fazer com apenas algumas teclas no vim.

Existem alguns recursos principais que são extremamente úteis e você acabará usando o tempo todo.Os que mais amo são:

  • Seleção de bloco (Ctrl-V)
  • Gravação macro (q)
  • Edição virtual (:set ve=all)
  • Expressões regulares
  • Canalização para programas Unix externos
  • Mapeamentos principais
  • Preenchimento automático (Cp, Cx Cp, Cx Cf)
  • A combinação operação+movimento (isso é incrivelmente poderoso)

Pergunte a outros programadores quais recursos eles consideram mais úteis e adote aqueles que melhor se adaptam ao seu cérebro.Roubar ideias de outras pessoas .vimrcé (aqui está o meu)

EDITAR:eu criei um flashcard colocado no site online de repetição espaçada flashcarddb.com, caso você esteja interessado ...

  1. Use um programa de cartão flash de repetição espaçada, como mnemósina, supermemorando, ou anki para incorporar o aprendizado e a retenção de novos comandos em sua rotina diária.Não basta usar o vim como seu editor diário.Para dominá-lo, você precisa armazenar esses códigos em sua cabeça, aguardando o momento em que eles serão a solução ideal para a tarefa em questão.
  2. Mantenha um .vimrc com personalizações
  3. Escreva ou edite um plugin vim

Eu escrevi um guia para edição eficiente com Vim um tempo atrás.Você pode achar isso útil.

Eu recuaria por um minuto e me perguntaria "por que quero aprender este editor?O que me faz pensar que ele será mais rápido ou melhor que meu editor de texto atual?" Então aprenda os recursos que tornarão o Vi(m) indispensável para você.

Por exemplo, a integração de CTags do Vim é completamente indispensável para mim.Eu trabalho com uma base de código muito, muito grande, e a capacidade de pular para uma função ou definição de classe com um toque de tecla (independentemente do arquivo em que ela esteja) é um recurso absolutamente matador, sem o qual tenho dificuldade em trabalhar.

Use seu arquivo .vimrc para criar macros que automatizam tarefas comuns.

Seu selecionador de editor do piloto automático escolherá o editor que fará o trabalho mais rápido e com o menor esforço mental.Um pouco de preparação garantirá que o editor seja o Vim.:-)

Duas coisas que irão melhorar muito suas habilidades de vi:

  1. Pratique, pratique, pratique
  2. Nethack

Minha sugestão:Comece pequeno.Comece memorizando um pequeno conjunto de comandos mais úteis.Quando comecei o vi, estes eram meus 10 principais:

  • (Esc) para retornar ao modo de comando (o mais importante!)
  • a para adicionar texto após o cursor
  • A para adicionar texto no final da linha atual
  • x para excluir 1 caractere
  • dd para excluir 1 linha
  • R para substituir texto (sobrescrever)
  • você desfaz
  • :q!(Enter) para sair sem salvar
  • :w (Enter) para salvar
  • ZZ para salvar e sair

Muitas edições básicas podem ser feitas usando apenas esses comandos.Depois que você se sentir confortável, o resto não parecerá muito difícil.

Aliás, gostaria de acrescentar que costumava confiar no vi como meu editor de texto principal, mas agora apenas se for necessário.No meu caso, a produtividade é melhor quando uso ferramentas como Emacs ou Visual Studio (observe:"No meu caso").Experimente mais de uma ferramenta e escolha aquela que mais ajuda na sua produtividade.Boa sorte!

Parece bobo, mas brincar roguelike jogos (como Nethack ou Angband) é uma maneira divertida de se sentir confortável com o uso do h/j/k/l teclas para navegação do cursor.

Anote todos os atalhos e recursos que você usa em seu editor atual enquanto o usa no trabalho.Em seguida, sente-se no sábado de manhã e, usando o Google e o stack overflow, descubra como fazer cada um deles no vi.Provavelmente é melhor usar uma folha (ou folhas) de papel para isso.

Agora desative/exclua os outros editores no trabalho para que você demore mais para encontrá-los e reinstalá-los do que olhar sua folha de comparação e fazê-lo no vi - ou seja,você não tem escolha.

Por último, publique sua lista de atalhos cruzados do editor antigo para o novo em seu blog.

Boa sorte!

Não use X11?

$ sudu rm /usr/local/bin/emacs

Mude seu shell de login para vi?

Primeiro, force-se a usar Ed, então vi parecerá um luxo?

Use o vi combinações de teclas em festa?

Basta começar a usar vi o tempo todo?

Parece-me que aprender um editor não é muito diferente de aprender um idioma.A imersão funciona melhor.

eu uso vi para edições muito rápidas ou quando não consigo usar X11 por algum motivo, mas eu moro em emacs.Vale a pena dedicar algum tempo para aprender editores realmente poderosos.

Minha recomendação é criar alguns programas simples e escrevê-los, do início ao fim, usando VI.

Provavelmente, você ficará muito frustrado no início com a curva de aprendizado para se forçar a usá-los no trabalho ou em qualquer ambiente urgente.

Já fiz isso antes para me familiarizar com ambientes/editores e funciona muito bem.

Se você estiver tendo problemas para escrever coisas, recomendo refazer projetos que você fez na escola (ou qualquer outra coisa que você tenha feito anteriormente).Este método tem a vantagem adicional de permitir que você veja o quanto você se tornou um desenvolvedor melhor.:)

Editar:esqueci de mencionar que você deve fazer isso inteiramente no console para evitar qualquer tentação de usar o mouse!

Lembro-me de quando comecei a aprender emacs, foi depois de já estar muito confortável com o Vim, e estava no mesmo barco ou semelhante que você, onde sabia como fazer muita coisa em outro editor, então quando comecei usando o emacs, sempre foi dolorosamente lento.

No entanto, acho que o que você terá que fazer é apenas absorver um pouco da dor, e sempre, sempre, SEMPRE certifique-se de consultar a documentação para fazer algo que você saber você pode fazer no editor anterior, como ir para o final de uma linha ou selecionar uma região do texto.

Também ajuda se você tiver um especialista em vi local disponível para fazer perguntas ou, se você for como nossa empresa, promover a programação em pares.Dessa forma, quando você estiver tentando fazer algo que deveria ser fácil, você pode simplesmente perguntar a alguém, eles lhe mostrarão como, e se você estiver usando o editor regularmente por algumas semanas, você não precisará perguntar mais depois, algumas vezes antes de se tornar uma segunda natureza.

Se você não tiver recursos locais, há muitos livros/tutoriais/folhas de referência on-line que poderão responder à maioria das suas perguntas.

Em última análise, aprender Vi é como aprender outras habilidades, não existe solução mágica e você terá que aceitar que, por um tempo, será menos produtivo nisso do que seu editor atual.Continue dizendo a si mesmo: "Outras pessoas conseguiram aprender Vi e eu sou pelo menos tão inteligente quanto elas" (de qualquer maneira, é isso que digo a mim mesmo :))

A principal razão para eu usar vi é ssh (ou Putty no Windows):Quando você está logado remotamente em um servidor Unix, então vi está sempre disponível.E funciona com o VT100 quando nem as teclas do cursor nem backspace/delete estão mapeadas.

Também ter um livro como Referência de bolso do VI Editor ajuda muito.

O gVIM tem um tutorial muito bom (link no grupo do menu Iniciar).

Descobri que trabalhar nisso ajudou a superar o obstáculo inicial do aprendizado;e então mudar meu Visual Studio para ViEMU me ajudou a aprimorar minhas habilidades de VI.

Além disso, os screencasts em http://vimcasts.org/ são ótimos!

Você pode colocar as mãos em um dos teclados originais do Happy Hacker (sem teclas de seta) e colocar o mouse (sem fio) fora de alcance sempre que começar a editar.

É fácil escrever uma grande lista de comandos/atalhos, mas é difícil lembrar de todos eles sem prática.

Concentre-se em um novo comando de cada vez.Quando se tornar automático, digamos, depois de usá-lo por uma semana ou duas, adicione outro ao seu repertório.

Você percorrerá um longo caminho para realizar certas coisas no curto prazo - essas são oportunidades óbvias para aprender novos atalhos.

Na minha experiência, foi mais fácil quando tentei não assumir muitas tarefas de uma vez.

Minha sugestão número um:aprenda a digitar rápido, sem precisar olhar para o teclado.

Se você não consegue digitar e está sempre procurando os dois pontos ou o hjkl ou :%s/foo/bar, esqueça.Digitando pode será mais rápido do que usar o mouse, mas se esse não for o seu caso, o vi não funcionará.

Mas combine boas habilidades de digitação, ssh e tela e vi será natural.

Encare o fato de que isso criará um impacto imediato no desempenho.Ao aprender uma nova ferramenta, você precisa ser capaz de fazer algo que você sabe fazer com outras ferramentas, para que o problema não seja seu.Depois de usar a nova ferramenta por um tempo, ela desaparecerá e você se concentrará apenas no problema subjacente.

Com algo como o vim (como já foi dito, o vim é muito superior ao vi), é importante reler e navegar na documentação periodicamente.A interface é completamente impossível de descobrir sem ele.A cada nova leitura, você verá um recurso e dirá: "ah, ha, isso teria resolvido o problema que eu estava tentando resolver na semana passada", e irá arquivá-lo em seu cérebro.Soluções relacionadas a problemas do mundo real que você teve são muito mais fáceis de lembrar do que atalhos aleatórios.

No final, você pode usar o vim com um subconjunto bastante pequeno de recursos, então não fique sobrecarregado com todos os recursos.Pense em todos os recursos do Word, 99% das pessoas os usam?

ESC gg=G para reindentar o código e :retab converter tabulações em espaços ou espaços em tabulações foi o que me atraiu ao vim.Então, na verdade, você não precisa ser forçado a usá-lo, basta aprender quando ele pode ajudá-lo a aumentar sua velocidade.

Ir através vimtutor.

Comece a usar o vim para edição simples, como arquivos de configuração ou html.Aprenda os comandos conforme necessário.

Pesquise no Google por um bom .vimrc usado por alguém que usa um conjunto de ferramentas semelhante ao seu.Ative o realce de sintaxe.Encontre um bom esquema de cores.

Aprenda macros porque o Vim é o melhor para tarefas automatizadas e inserção de snippets, como formatar algumas palavras em uma tag XML complexa ou converter um CSV em uma tabela HTML.

Você pode querer começar com Cream.Cream se descreve como “uma configuração moderna” do vim.Basicamente, é uma versão especial do vim que se parece com qualquer outro editor de texto para todos os efeitos práticos.Mas ative o "modo especialista" e você terá todo o poder e comportamento do vim.

Portanto, você pode começar a usar o Cream como um editor de texto normal e depois experimentar o "modo especialista" até se sentir confortável o suficiente para mudar totalmente para o vim.

Instalar gVim em todas as plataformas que você usa.

Em seguida, execute o vimtutor (:help vimtutor ou vimtutor na linha de comando).

Assista à palestra a seguir e siga seus conselhos: 7 hábitos para edição de texto eficaz 2.0

Eu digo que você definitivamente deseja começar a usá-lo em todas as suas edições.Se você teme uma perda de produtividade, reserve um fim de semana para praticá-lo de maneira sólida (uma vez fiz isso para mudar do qwerty para o dvorak e minha produtividade estava alta o suficiente na segunda-feira e consegui mantê-la depois).

Vale a pena o esforço e você não vai olhar para trás!

Pessoalmente, o que eu tive que fazer foi ter certeza de que poderia usar as combinações de teclas do Vim (ou pelo menos próximas o suficiente) em vários aplicativos.Ter que mudar completamente a forma como editava o texto sempre que mudava de editor tornava muito difícil comprometer o estilo de edição do Vim com a memória muscular.

No meu caso, Viemu + vimperator resolveu.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top