Há um bom tempo, li um artigo do criador do viemu , esclarecendo muitos equívocos sobre o vi, além de explicar 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 alguns bits de cada vez.
Estou convencido.
Fui convencido nos últimos 2 anos, de fato. Mas ainda não consegui me forçar a aprender o vi como meu principal editor, a curva de aprendizado é muito alta. Quando chego ao trabalho, a produtividade aceitável, mas imediata (usando meu editor atual) até agora conquistou uma tremenda produtividade mais adiante (usando o vi).
Alguém tem boas dicas para ajudar a superar a curva de aprendizado? Pode ser dicas diretas, algum outro tutorial ou artigo, qualquer que seja.
Edit: Observe que estou ciente das variantes vim / gVim , Cream e MacVim (etc.) do vi. Eu mantive minha pergunta sobre o vi para me referir à família do vi como um todo. Obrigado por todas as ótimas respostas.
Atualização (abril de 2009)
Uso o Vim (mais precisamente, o 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.
fonte
Respostas:
Primeiro de tudo, você pode querer pegar o Vim; possui um conjunto de recursos muito superior, além de tudo o que o vi possui.
Dito isto, é preciso disciplina para aprender. Se você tem um emprego e não pode se dar ao luxo de atingir a produtividade (sem ser demitido), sugiro que assuma um projeto de fim de semana com o único objetivo de aprender o editor. Mantenha a documentação aberta enquanto trabalha e seja disciplinado o suficiente para não desanimar. À medida que você aprende mais, se torna eficiente e começa a confiar na memória muscular, não será tão difícil ficar com ela.
Estou usando 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 é uma das melhores escolhas que fiz na minha carreira em programação.
fonte
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 acostumava a pressionar ctrl + [sempre que lhe diziam para pressionar Escape. É muito mais rápido e você não precisará 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
Então, apenas pratique a prática.
editar O motivo para evitar as teclas de seta é que elas diminuem a velocidade. Um dos maiores benefícios do Vim é a velocidade que ele permite. As teclas de seta também impedem que você realmente adote a natureza modal, que é muito poderosa quando dominada.
fonte
Etapa 0: aprenda a tocar no tipo. Sério - se seus dedos não souberem onde estão as teclas, o vim será uma dor. E mesmo se você rejeitar o vim, a digitação por toque melhorará sua programação (pergunte a Steve Yegge ), fazendo com que a mente monitore o atrito do link sem problemas. Há um monte de software que podem ajudá-lo a melhorar a sua digitação.
Etapa 1: use o vimtutor para começar. Está no gvim (no menu de ajuda, eu acho) ou você pode simplesmente digitar 'vimtutor' na linha de comando. Demorará 30 a 45 minutos do seu tempo e seus dedos conhecerão o básico do vi / vim e você poderá editar arquivos sem querer lançar o teclado pela janela.
Etapa 2: use o vim em qualquer lugar. Consulte esta pergunta para obter dicas e links para usar as combinações de teclas vim e vi na linha de comando, no navegador da web, para escrever e-mails, no seu IDE ... Você precisa usar o vim para incorporar as combinações de teclas na memória muscular.
Etapa 3: saiba mais sobre o vim. Você só terá arranhado a superfície com o vimtutor. Você pode assistir a este vídeo ou ler este artigo (ambos sobre os "Sete hábitos da edição eficaz de texto". Você pode ler sobre dicas e truques no StackOverflow . Você pode navegar por vimtips . Aprender um pouco geralmente é o meu conselho - há muito lá fora, que aderir a pedaços pequenos será a melhor maneira de manter o conhecimento.
Etapa 4: Lucro :)
fonte
Eu tenho sido um usuário recorrente e recorrente do vim ao longo dos anos (realizando um trabalho ocasional de administrador de sistemas). Recentemente, comecei a dedicar mais tempo ao meu trabalho de programação. Eu sugiro começar com gvim também. Ele se integra bem à maioria dos ambientes de SO e (melhor ainda), você pode recorrer ao mouse quando precisar :).
Para começar com o vim, execute o vimtutor (fornecido com o gVim) uma ou duas vezes (leva uma hora ou mais). 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 edições menores e mais rápidas (material de substituição do bloco de notas) 'até ficar confortável o suficiente para fazer edições úteis em um clipe rápido. Em seguida, tente fazer o seu trabalho diário nele. Você encontrará o comando "repeat last action" em outros editores em pouco tempo!
fonte
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. Eu acho que é um bom conselho. Mudar para vi a partir de um editor mais gráfico requer uma mudança de mentalidade. Requer pensar em termos de comandos, em vez de mudanças visuais.
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. O modo como fiz isso foi fazer uma pequena lista dos comandos de teclado mais comuns. Agrupei e codifiquei esses comandos por função, ou seja, movendo o cursor, editando, pesquisando etc. Tomei o cuidado de incluir apenas os comandos mais usados que eu não conhecia. A idéia é criar uma referência rápida que também ajude na memorização - não para substituir as telas de ajuda disponíveis. Depois imprimi esta 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. Ao me sentir confortável com um dos comandos, desenhei uma linha com um lápis. Eu ainda podia ver se precisasse, mas era simbólico para mim ter dominado esse comando. Isso me deu confiança e motivação, pois pude ver um progresso regular. Depois que a maioria deles foi cruzada, eu os removi 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 não havia riscado nenhum comando ou sequer olhado a lista há muito tempo.
Alguns anos atrás, eu precisava trabalhar em uma plataforma UNIX onde o vi era o único editor disponível. Comprei um pequeno livro de referência de bolso no vi, mas quase não o usei. Acabei fazendo listas e postando-as na parede, como fiz na primeira vez que usei o vi. No final da primeira semana, eu estava muito confortável, apesar de cinco anos desde que usei o vi.
fonte
Para mim, o VI é um bom editor de emergência, mas não é algo que eu queira usar se houver outra alternativa disponível. Percebo que isso não é para todos, porém, não estou dizendo que seja horrível ou algo assim, eu pessoalmente prefiro uma interface do usuário detectável.
Mas você realmente precisa conhecer o VI se fizer algo significativo no Linux!
Portanto, basta aprender o básico: i = modo de inserção esc = sair do modo de inserção: wq = salvar e sair: q! = Não salvar e sair de x = quando não estiver no modo de inserção, exclua o caractere. / = pesquisa
Isso o levará a qualquer emergência de edição. Não há nada que você não possa fazer com esses poucos comandos (e navegação, é claro). O resto você pode "Aderir" conforme necessário.
Porém, mantenha uma referência ou livro disponível - quando você PRECISA usar o VI, provavelmente não poderá navegar na web - mas a página de manual pode ser um pouco útil.
fonte
não se force. o caminho para dominar o amor é.
fonte
Você deve começar com o vim (Vi IMproved) e especialmente sua GUI - gVim . A GUI possui menus e, no Windows, você pode usar os comandos de copiar, recortar e colar e substituir o bloco de notas imediatamente. E como os menus exibem os atalhos (comandos do vim), você pode aprender muito.
Outra coisa que você deve fazer desde o início é configurar o vi para 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, porque o vi oferecerá tudo o que você precisa.
fonte
exclua todos os outros aplicativos de editor de texto.
Então você terá que aprender.
fonte
A maneira mais simples de se forçar pode ser apenas remover todos os outros editores da sua máquina. Livre-se da tentação :)
fonte
Toda vez que você estiver executando uma tarefa complexa de edição, 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 alguns pressionamentos de tecla no vim.
Existem alguns recursos importantes que são extremamente úteis e você terminará usando o tempo todo. Os que eu mais amo são:
Pergunte a outros programadores quais recursos eles acham mais úteis e adote aqueles que se encaixam melhor em seu cérebro. Roubar idéias de outras pessoas
.vimrc
( aqui está a minha )fonte
EDIT: Criei um cartão de memória definido no site de repetição espaçada online flashcarddb.com , caso você esteja interessado ...
fonte
Escrevi um guia para edição eficiente com o Vim há um tempo. Você pode achar útil.
Eu recuava um minuto e me perguntava "por que quero aprender este editor? O que me faz pensar que será mais rápido ou melhor do que o meu atual editor de texto?" Em seguida, aprenda os recursos que tornarão o Vi (m) indispensável para você.
Por exemplo, a integração 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 definição de função ou classe em um pressionamento de tecla (independentemente do arquivo em que está) é um recurso absolutamente matador, sem o qual tenho problemas para trabalhar.
Use o arquivo .vimrc para criar macros que automatizam tarefas comuns.
O editor-seletor do piloto automático escolherá o editor que fará o trabalho mais rapidamente e com o mínimo de esforço mental. Um pouco de preparação irá garantir que o editor seja o Vim. :-)
fonte
Duas coisas que melhorarão muito suas habilidades no vi:
fonte
Minha sugestão: comece pequeno. Comece memorizando um pequeno conjunto de comandos mais úteis. Quando iniciei o vi, estes eram meus 10 principais:
Muita edição básica pode ser feita usando apenas esses comandos. Depois de se sentir confortável, o resto não parece muito difícil.
BTW, gostaria de acrescentar que confiava no vi para o 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 a que mais ajuda sua produtividade. Boa sorte!
fonte
Parece bobagem, mas jogar jogos roguelike (como Nethack ou Angband ) é uma maneira divertida de se familiarizar com o uso do
h
/j
/k
/ /l
teclas para navegação cursor.fonte
Anote todos os atalhos e recursos que você usa no seu editor atual enquanto o usa no trabalho. Em seguida, sente-se no sábado de manhã e, usando o Google e o estouro de pilha, descubra como fazer cada um deles no vi. Provavelmente é melhor se você usar uma folha (ou folhas) de papel para isso.
Agora desative / exclua os outros editores no trabalho, para que você demore mais tempo para encontrá-los e reinstalá-los do que ver sua planilha de comparação e fazê-lo no vi - ou seja, você não tem escolha.
Por fim, publique sua lista de atalhos cruzados do seu antigo editor para o novo no seu blog.
Boa sorte!
fonte
Não use o X11 ?
Mude o seu shell de login para vi ?
Primeiro, force-se a usar ed , então o vi parecerá um luxo?
Use as ligações da tecla vi no bash ?
Basta começar a usar o vi o tempo todo?
Parece-me que aprender um editor não é muito diferente de aprender um idioma. A imersão funciona melhor.
Uso o vi para edições muito rápidas ou quando não posso usar o X11 por algum motivo, mas moro no emacs . Vale a pena reservar editores realmente poderosos.
fonte
Minha recomendação é criar alguns programas simples e escrevê-los, do início ao fim, usando o VI.
As probabilidades são de que você se sentirá muito frustrado a princípio pela curva de aprendizado para se forçar a usá-las no trabalho ou em qualquer ambiente sensível ao tempo.
Eu já fiz isso antes para me familiarizar com os ambientes / editores e funciona muito bem.
Se estiver com problemas para escrever coisas, recomendo refazer os projetos que você fez na escola (ou qualquer outra coisa que tenha feito anteriormente). Esse método tem o bônus adicional de permitir que você veja quanto melhor desenvolvedor você se tornou. :)
Edit: esqueceu de mencionar que você deve fazer isso inteiramente no console para evitar qualquer tentação de usar o mouse!
fonte
Lembro-me de quando comecei a aprender emacs, foi depois que eu já estava muito à vontade com o Vim e estava no mesmo barco ou similar que você, onde eu sabia como fazer muito em outro editor, então comecei usando o emacs, era sempre dolorosamente lento.
No entanto, acho que o que você terá que fazer é absorver um pouco da dor e sempre, sempre, SEMPRE verifique a documentação para fazer algo que você sabe que pode fazer no editor anterior, como como mover para o final de uma linha ou selecionar uma região do texto.
Também ajuda se você tiver um especialista local em vi que possa fazer perguntas ou, se você for como a nossa empresa, promover a programação em pares. Dessa forma, quando você estiver tentando fazer algo fácil, basta perguntar a alguém, eles mostrarão como, e se você estiver usando o editor regularmente por algumas semanas, não precisará pedir mais algumas vezes antes de se tornar uma segunda natureza.
Se você não possui recursos locais, há muitos livros / tutoriais / folhas de referência on-line que devem responder à maioria das suas perguntas.
Por fim, aprender Vi é como aprender outras habilidades, não há uma bala de prata e você terá que aceitar que, por um tempo, você será menos produtivo do que seu editor atual. Continue dizendo a si mesmo: "Outras pessoas foram capazes de aprender Vi, e eu sou pelo menos tão inteligente quanto elas" (é o que eu digo a mim mesma de qualquer maneira :))
fonte
A principal razão para eu usar
vi
éssh
(ou Putty no Windows): Quando você está conectado a um servidor Unix remotamente, elevi
está sempre disponível. E funciona com o VT100 quando nem as teclas do cursor nem o backspace / delete são mapeados.Também ter um livro como o VI Editor Pocket Reference ajuda muito.
fonte
O gVIM tem um ótimo tutorial (link no grupo do menu Iniciar).
Eu descobri que trabalhar com isso ajudou a superar o problema inicial de aprendizado; e depois mudar meu Visual Studio para o ViEMU me ajudou a aprimorar minhas habilidades em VI.
Além disso, os screencasts em http://vimcasts.org/ são ótimos!
fonte
Você pode colocar suas mãos em um dos teclados Happy Hacker originais (sem teclas de seta) e colocar o mouse (sem fio) fora do alcance sempre que começar a editar.
fonte
É 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ê estará percorrendo o longo caminho para realizar certas coisas no curto prazo - essas são oportunidades óbvias para novos atalhos aprenderem.
Na minha experiência, foi mais fácil quando tentei não assumir muito de uma vez.
fonte
Minha sugestão número um: aprenda a digitar rapidamente, sem precisar olhar para o teclado.
Se você não pode tocar no tipo e está sempre caçando e bicando o cólon ou o hjkl ou:% s / foo / bar, esqueça. Digitar 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 screen e vi será natural.
fonte
Encare o fato de que isso criará um impacto imediato no desempenho. Ao aprender uma nova ferramenta, você deve poder fazer algo que 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 outros já disseram, o vim é muito superior ao vi), é importante reler e navegar periodicamente na documentação. A interface é completamente desconhecida sem ela. A cada nova leitura, você verá um recurso e dirá: "ah ha, isso teria resolvido esse problema que eu estava tentando descobrir na semana passada" e o arquivará em seu cérebro. As soluções conectadas aos problemas do mundo real que você teve são muito mais fáceis de lembrar do que os atalhos aleatórios.
No final, você pode usar o vim com um subconjunto bastante pequeno de seus recursos, portanto, não fique sobrecarregado com todos os sinos e assobios. Pense em todos os recursos do Word, 99% das pessoas os usam?
fonte
ESC gg=G
reindicar código e:retab
converter abas em espaços ou espaços em abas foi o que me atraiu ao vim. Então, na verdade, você não precisa ser forçado a usá-lo, basta aprender quando isso pode ajudá-lo a aumentar sua velocidade.Atravesse
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 uma cadeia de ferramentas semelhante à sua. Ative o realce da sintaxe. Encontre um bom esquema de cores.
Aprenda macros porque o Vim é o melhor para tarefas automatizadas e inserção de trechos, como formatar algumas palavras em uma tag XML complexa ou converter um CSV em uma tabela HTML.
fonte
Você pode querer começar com o Cream. Creme 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 fins práticos. Mas ative o "modo especialista" e você terá todo o poder e comportamento do vim.
Assim, você pode começar a usar o Cream como um editor de texto comum e depois experimentar o "modo especialista" até se sentir confortável o suficiente para mudar totalmente para o vim.
fonte
Instalar
gVim
em todas as plataformas que você usa.Em seguida, execute o vimtutor (
:help vimtutor
ouvimtutor
na linha de comando).Assista à seguinte palestra e siga seus conselhos: 7 Hábitos para a edição eficaz de texto 2.0
Eu digo que você definitivamente quer começar a usá-lo para toda a sua edição. Se você teme uma perda de produtividade, tire um fim de semana para praticá-la sólida (uma vez fiz isso para mudar para dvorak de qwerty e tive minha produtividade alta o suficiente até segunda-feira e consegui ficar com ela depois).
Vale a pena o esforço e você não vai olhar para trás!
fonte
Pessoalmente, o que eu tinha que fazer era garantir que eu pudesse usar as combinações de teclas do Vim (ou pelo menos perto o suficiente) em vários aplicativos. Ter que mudar completamente a forma como editei o texto sempre que troquei de editor dificultou o comprometimento do estilo de edição do Vim com a memória muscular.
No meu caso, o Viemu + vimperator fez o truque.
fonte