Como programador, passo muitas horas no teclado e faço isso nos últimos 12 anos, mais ou menos. Se há algo que eu nunca me acostumei durante todo esse tempo, são essas micro-interrupções constantes e irritantes e quase inconscientes que experimento durante a codificação, devido a algumas das tarefas mais comuns de edição de código. Coisas como copiar e colar simples de uma linha diferente (ou mesmo da mesma linha) ou mover 1 ou 2 linhas para cima ou para baixo da posição atual exigem muita digitação ou envolvem o uso das teclas de seta ... pior quando quero avançar - acabo usando o mouse. Agora imagine esse mesmo cenário, mas em um laptop.
Sempre considerei aprender o VIM, mas a quantidade de tempo necessária para dominá-lo sempre me fez querer voltar atrás.
Eu gostaria de ouvir de pessoas que aprenderam e se isso acaba sendo uma daquelas coisas que você não pode viver sem.
No trabalho, uso o VS2008, C # e R #, que juntos tornam a edição do código muito mais rápida e fácil do que nunca, mas, mesmo assim, acho que poderia gostar de não precisar usar o mouse.
E nem mesmo as teclas de seta.
Respostas:
Também uso o vi e o vim há 20 anos e ainda estou aprendendo coisas novas.
O site Best of Vim Tips de David Rayner é uma excelente lista, embora seja provavelmente mais útil quando você tiver alguma familiaridade com o vim.
Também quero mencionar o site do ViEmu, que contém ótimas informações sobre as dicas do vi / vim e, especialmente, o artigo Por que, oh POR QUE, esses malucos usam o vi? ( versão arquivada )
fonte
Eu poderia viver sem isso? Facilmente.
É útil? Sim.
Razões para aprender
O vi é garantido que existe em todos os sistemas Unix e existe na maioria dos sistemas Linux. Esse tipo de cobertura ampla faz o aprendizado valer a pena.
É muito mais rápido usar o vi para uma
sudo
edição:$ sudo vi
Além disso, o GMail usa comandos vi-ish para selecionar e mover e-mails!
Você não precisa ser um mestre.
Apenas aprenda
O básico:
:w
Enter(gravação):q!
Enter:wq
EnterA partir daí, o resto apenas o tornará mais rápido.
fonte
Executar o vimtutor levou apenas 30 minutos, o que foi suficiente para me familiarizar com o vim. Valeu a pena cada segundo disso.
fonte
Se você é um programador que edita muito texto, é importante aprender um Editor de texto sério. O Editor de texto sério que você aprende não é muito importante e depende muito dos tipos de ambientes em que você espera editar.
O motivo é que esses editores são altamente otimizados para executar os tipos de tarefas que você fará muito. Por exemplo, considere adicionar o mesmo pedaço de texto ao final de cada linha. Isso é trivial em Um editor de texto sério, mas ridiculamente complicado de outra maneira.
Geralmente, os recursos matadores do vim são considerados: A) que está disponível em praticamente todos os Unix que você já encontrou e B) seus dedos raramente precisam sair da linha de casa, o que significa que você poderá editar o texto muito, muito rapidamente . Também é geralmente muito rápido e leve, mesmo ao editar arquivos enormes.
Existem muitas alternativas, no entanto. O Emacs é o exemplo mais comum, é claro, e é muito mais do que apenas um editor de texto avançado, se você realmente se interessa por ele. Pessoalmente, sou um usuário TextMate muito feliz agora, depois de anos usando o vim / gvim.
O truque para mudar para qualquer uma dessas opções é forçar-se a usá-las da maneira que elas foram planejadas. Por exemplo, no vim, se você estiver executando manualmente todas as etapas de um processo de várias etapas ou se estiver usando as teclas de seta ou o mouse, provavelmente haverá uma maneira melhor de fazê-lo. Pare o que está fazendo e procure.
Se você não fizer mais nada, aprenda os controles básicos de navegação do vim e do Emacs, pois eles aparecem em todo o lugar. Por exemplo, você pode usar controles no estilo Emacs em qualquer campo de entrada de texto no Mac OS, na maioria dos shells do Unix, no Eclipse etc. Você pode usar controles no estilo vim no comando less (1), no Slashdot , no gmail , etc.
Diverta-se!
fonte
<esc> >i{
... É realmente o mesmo que com a digitação por toque: você aprende um layout de teclado e mantém-se nele porque nunca será capaz de parar seus dedos digitando as teclas erradas em um layout diferente.É definitivamente vale o esforço.
Há uma razão óbvia que qualquer pessoa que usa
Vi(m)
lhe dirá, e duas outras que as pessoas parecem nunca mencionar.Aqui está o óbvio:
vi
é ao mesmo tempo onipresente e incrivelmente poderoso e, aprendendo uma vez, você ganha a capacidade de exercer esse poder em praticamente qualquer computador que possua teclado.E estas são as razões menos conhecidas para aprender
Vim
:Não é nem metade do esforço que você pensa que será. Execute o tutor do Vim uma vez (
vimtutor
em um shell ou no Windows, execute-o na pasta Vim, no Menu Iniciar), e você já estará no caminho da competência, e tudo fica ladeira abaixo. Eu estava no nível em que poderia usarVim
no trabalho sem sofrer nenhum impacto perceptível na produtividade em menos de uma semana no horário de almoço.É divertido ! Editar texto é como um jogo para mim agora. Eu gosto ativamente - o que é bastante ridículo, quando você pensa sobre isso.
Há também duas boas razões para não aprender
Vim
:É viciante e você desejará poder usar
Vim
comandos em toda a sua computação e xingar sempre que não puder. Felizmente, pelo menos em algumas situações, há maneiras de contornar isso .Mais uma vez, é viciante e, embora você não perca produtividade com o uso
Vim
, perderá horas procurando boas dicas para tornar suaVim
experiência ainda melhor e lendo a tag Vim no Stack Overflow.fonte
Definitivamente, vale a pena aprender vim ou emacs. Também vale a pena aprender a digitar. Nos dois casos, as razões são as mesmas: seu pensamento não é mais interrompido pelo processo mecânico de colocar seu código na tela .
Quanto a como começar, basta mergulhar e começar a usar o vim para tudo.
PS O debate emacs-vs-vi é interminável. Uso o emacs há 26 anos. Se eu recomeçasse hoje, aprenderia o vim porque (a) ficou melhor eb) há muito menos teclas modificadoras (Ctl-Alt-V, qualquer um) e os usuários do vim parecem ter muito menos problemas de digitação.
fonte
Você pode obter uma boa funcionalidade fora do vim aprendendo os significados de apenas 16 teclas:
ijkdbw9:q!%s/nN
Esc. Você pode fazer os ossos nus com apenasi:wq
Esc.As duas primeiras teclas que você precisa saber são: Escleva você ao modo de comando (o modo em que você inicia) e
i
leva você ao modo de inserção (digitação normal).Para salvar, você precisa
:
w
depoisEnterPara salvar e sair, você precisa
:
wq
depoisEnterPara não salvar e forçar o encerramento, é necessário
:
q!
depoisEnterPara saber mais, você pode executar
vimtutor
na linha de comando. É uma lição de tamanho médio e bem estruturada.Além
i
e Esc: você pode replicar ou superar apenas algumas funcionalidades do MS Wordjkwbd3:%s/nN
.b
leva de volta uma palavra ( Ctrl+← )w
leva uma palavra adiante ( Ctrl+→ )9w
leva você para a frente nove palavrasdb
exclui a palavra anterior ( Ctrl+Backspace )d3b
exclui três palavras anteriores9j
desce 9 linhasornithopter
Enterleva você para a próxima ocorrência da palavra "ornitóptero", em seguida,n
eN
para o próximo e anterior ocorrência de "ornitóptero", respectivamente.%s/confounded/dangfangled/
Entersubstitui cada "confundido" por "dangfangled" (comofind and replace all
no MS Word)Qualquer um desses deve ser executado no modo "comando" ( Esc), não no modo de inserção (
i
).fonte
Recentemente, mudei para o VIM e acho que vale a pena. Se você precisar "apenas fazer algo", sempre poderá permanecer no modo de inserção, onde o vim é (na maioria das vezes) como um editor de texto normal.
Percebi que coisas que não costumavam me incomodar, como pegar as teclas de seta, agora parecem erradas e com muito esforço. Definitivamente diminuiu o movimento da mão e o uso do mouse, o que é bom tanto para ergonomia quanto para produtividade
fonte
Depende do que você deseja fazer com o VIM. Não faz sentido aprendê-lo apenas porque muitas pessoas não podem viver sem ele.
Quando eu trabalhava muito em ambientes UNIX, não podia viver sem ele. Mesmo quando o VIM não estava instalado em uma máquina UNIX, eu podia pelo menos usar o vi. Você sempre pode contar com isso - mesmo que a máquina não seja sua (a do cliente).
Agora eu programo em C # e trabalho principalmente no ambiente Windows. Eu instalei o VIM no meu PC ... e não preciso dele.
Avalie se você realmente precisa do VIM e se ele é compatível com seu "fluxo de trabalho". Experimente. Brinque com isso. Se você acha que precisa, mantenha-se ... a curva de aprendizado é muito acentuada.
fonte
Eu aprendi vi porque precisava.
Meu professor maluco nos forçou a aprender a programar em C usando um terminal para um sistema AIX.
Foi uma dor real, mas vale a pena.
Hoje, eu só uso o vi para edições rápidas ou pequenos programas.
Quando tenho que ir para um projeto, prefiro usar o IDE. No meu caso, a ideia do IntelliJ é muito boa na tarefa, porque eu posso codificar por horas sem pegar o mouse.
Não sei quanto atalhos o VS2008 possui, mas se eles são tão detectáveis quanto o Eclipse, acho que você está com problemas, vá para o vi.
Se você NÃO editar código fora do IDE e seu IDE tiver bons atalhos, é melhor aprendê-los e, então, vá e aprenda o vi de qualquer maneira.
:)
fonte
Eu uso o vi / vim há mais de 25 anos. Se você já conhece algum editor de linha de comando, talvez não precise aprender o vi / vim. Mas se você não conhece muito bem outros editores de linha de comando, vale a pena aprender. É muito fácil ser produtivo no vi / vim com pouco esforço.
fonte
Eu uso o VIM praticamente agora.
Eu costumava usar o Vim para edição e o VS Editor para depuração. Provavelmente isso parece um pouco louco, mas eu achei o paradigma Vi (macros, edição baseada em chaves domésticas etc.) um aumento na minha produtividade, pois a edição no VS era muito interessante.
Graças a Viemu , nem preciso mais fazer a troca. Ainda não é a solução perfeita (o preenchimento de código às vezes não é tão elegante quanto no vim nativo e a gravação de macro não é perfeita), mas é muito melhor do que alternar constantemente.
A curva de aprendizado do Vim provavelmente é exagerada. Eu acho que quando você entra, é bastante intuitivo.
fonte
Meu trabalho me forçou a pegar o vim e rapidamente se tornou uma segunda natureza. Agora, minhas reclamações são sobre IDEs que não possuem emulação ou plugins do vim. Percebo que a tecla esc se tornou meu inimigo fora do vim.
Encontrei vários emuladores para vi no Visual Studio:
http://code.google.com/p/vim-visual-studio/
fonte
Em primeiro lugar, um bom conhecimento do vi (m) poupará o tempo necessário para realizar edições de emergência de arquivos de configuração em um servidor em sigilo. Ele pode suportar uma conexão ssh lenta.
Se necessário, o método de entrada do vim será sua melhor defesa contra o túnel do carpo se você o usar efetivamente com um teclado ergonômico.
A melhor maneira de ver o ponto do vim é iniciar um projeto casual em casa, desconecte o mouse e prenda as teclas de seta.
E leia a ajuda
fonte
nano
muito mais fácil de usar do que o vim, e é quase igualmente difundido.Duas vantagens do vi / vim:
é muito leve
está instalado em quase todos os sistemas * NIX
fonte
Estou mantendo um projeto linux muito grande no computador remoto. Não há escolha para usar Eclipse ou IDE baseado em GTK semelhante. Eu trabalho lá há 3 anos. E eu configurei meu vim apenas para este projeto. E ainda aprimorando.
Agora eu posso fazer qualquer coisa no Vim: controle de origem, sql, depuração, compilação, navegação - navegação muito rápida em código-fonte de 1Gb.
O Visual Studio ou Eclipse não conseguiu lidar com tudo isso. E se eu tivesse uma escolha, não mudaria o Vim para outro editor ou IDE.
fonte
Eu aprendi Vim. Não foi muito esforço. Agora eu absolutamente amo ci "ci (cw V: s / de / para / g
fonte
Eu diria que o vim definitivamente vale a pena aprender. Eu o peguei no último verão e agora é meu editor de escolha para quase tudo (o java é um exagero, mas factível quando não preciso de amplo suporte à análise). Como todos já afirmaram, é uma ferramenta maravilhosamente eficiente.
Pelo que vale a pena, eu aprendi apenas um subconjunto bastante pequeno dos recursos do vim (que levaram um dia ou dois) com um tutorial gráfico e algumas probabilidades e fins daqui (leitura longa), além da funcionalidade de pesquisa e substituição, e eu foi fisgado. Eu aprendi coisas desde então, mas no meu lazer. Eu diria que a curva de aprendizado se achatou nesse ponto, mas então, eu a estava usando bastante e estava cercada por outras pessoas que também estavam.
fonte
Estou na mesma situação que você e, como iniciante no Vim, originalmente achei um pouco assustador - a curva de aprendizado parece íngreme. Pelo que aprendi em apenas algumas horas, já sinto que não poderei viver sem ele.
Aqui está um poucos ligações que eu encontrei para screencasts Vim úteis para mostrar o que ele é capaz.
Um bom conselho que Bram Moolenaar (ditador benevolente do Vim) deu nesse último link é que seria ineficiente tentar aprender todos os comandos e funções, apenas descubra o que você está fazendo e não funcionando muito bem, procure uma maneira de torná-lo mais eficiente e, em seguida, torne-o um hábito.
fonte
Sim, definitivamente reserve um tempo para aprender pelo menos um pouco de 'vi' e 'vim'. Viaja muito bem.
Você nunca ficará preso quando se deparar com um sistema Unix / Linux / Mac do cliente para o qual não possui recursos de instalação. Mesmo no Windows (se você tiver recursos de instalação), o 'Vim' é gratuito e fácil de instalar. (Em vez de investir sua curva de aprendizado puramente em algo como o UltraEdit, que embora um excelente editor possa não estar disponível para você o tempo todo ...).
O Learning vi pode configurá-lo para aprender outras ferramentas como 'sed' e regex em geral: coisas geralmente transferíveis.
Além disso, se você quiser ser um nerd adequado, basta saber 'vi / m' ou parecerá um falso ;-)
fonte
Eu acho que definitivamente vale a pena o tempo e o esforço para aprender o vim. Para mim, torna a digitação e a navegação pelo texto tão eficientes que é difícil imaginar voltar ao emacs ou aos combos ctrl / shift / alt / meta key.
Não se deixe intimidar por todos os recursos sofisticados do vim. Depois de usá-lo o suficiente, você descobrirá quais comandos mais usa e descobrirá quais coisas pode esquecer.
fonte
A incrível onipresença do Vim, e a ainda mais surpreendente onipresença dos Vi-clones em geral, apenas nos sistemas Unix são suficientes para fazer valer a pena aprender.
Além disso, todo o pensamento no estilo Vi é algo que eu realmente acho que me tornou um pouco mais produtivo. Para uma pessoa não acostumada a modos como o modo de comando e o modo de inserção, parece um pouco excessivo ter que entrar em um modo apenas para inserir texto. Mas, quando alguém usa o Vim há alguns meses e aprendeu algumas dicas e truques, o Vim parece ser um ativo que parece valer a pena.
Claro, a multidão do Emacs diz a mesma coisa com relação ao estilo de pensamento do Emacs, mas desisti de aprender o Emacs porque o Vim era mais simples e fazia o trabalho por mim.
fonte
Aprendi a gostar do vi depois de assistir alguém que era muito habilidoso com ele navegar para fazer edições em um clipe incrivelmente rápido. Você realmente pode codificar rapidamente com ele. Outro motivo pelo qual gosto é que, às vezes, acho que passar o mouse em um IDE realmente machuca minhas mãos depois de um tempo e o vi fornece uma boa mudança. Como outros já mencionaram, também quase sempre está disponível em sistemas unix e funciona bem mesmo em conexões ruins.
Uma coisa que eu não vi mencionado é que conhecer o vi tem o benefício adicional de "geek cred" em alguns círculos. Posso pensar em pelo menos algumas pessoas que riem quando vêem um novo programador iniciar o nedit para fazer algumas alterações em um arquivo.
fonte
Não se assuste com o número de comandos, eu não conheci ninguém que usou mais de duas dúzias no máximo. Eu acho isso indispensável, porque quando estou pensando em código, estou pensando em texto, passar a pensar em ratos apenas me atrapalha. Os grandes truques, acho, são aprender um pouco de cada vez e não hesitar em brincar - os recursos de desfazer são ótimos para explorar seus comportamentos.
Além disso, se você se aprofundar nisso, o vim é programável. As possibilidades são literalmente infinitas.
(Sim, tudo isso também se aplica ao emacs ...)
fonte
Fiquei feliz com o meu bloco de texto e compreendi o mundo até ter que começar a trabalhar com servidores rodando em Linux. Foi necessário script remoto e configuração de arquivos de configuração!
Foi difícil no começo, mas agora eu posso facilmente configurar e ajustar meus servidores.
fonte
Você pode aprender o vim porque talvez não esteja satisfeito com os editores que já está usando.
Você pode aprender o vim porque muitas pessoas dizem que é legal. Veja quantas respostas você tem para esta pergunta.
Vou fornecer um motivo adicional para aprender o vim. Ele tem uma reputação pela qualidade e integridade de seus documentos. Portanto, você encontrará a maioria das respostas para suas perguntas em seu sistema de ajuda assim que conseguir colocar as palavras-chave adequadas em suas consultas de ajuda.
fonte
Para aprender vi (m) rápido, é preciso primeiro entender todo o design. O Vim possui um ótimo conjunto de comandos de movimento do cursor, verifique alguns (X é um caractere, # um dígito):
jk insira as setas 0 $ w W b B controle e controle controle e controle HML fX FX tX TX; % gg N n mX 'X' '
e muito mais, seria chato enumerar. Muitos deles suportam uma contagem antes do comando, como 4j para mover 4 linhas para cima.
Agora, de volta ao design, você digita um comando como d para exclusão seguido de um movimento do cursor e o comando se aplica à parte do texto da posição do cursor até o final do movimento. Por exemplo, H se move para o topo da tela, dH exclui para o topo da tela e cH muda (substitui) para o topo da tela.
Este design é bastante poderoso. Também reduz, ou organiza, o que você precisa aprender. Definitivamente, o primeiro passo é aprender alguns comandos de movimento do cursor. Digamos, 8 ou 10 no início. Então você está quase pronto.
fonte
Aprender algo novo vale sempre a pena, IMHO. Sugiro que você imprima uma folha de dicas e se force a usá-la dia após dia.
fonte
Definitivamente, vale a pena aprender o Vim para resumir parcialmente o que foi afirmado anteriormente aqui e os principais motivos:
Além disso, se você achar que gosta das ligações de teclas do Vim, também existem IDEs que incluem ligações de vim em seus editores para comandos simples, por exemplo, Komodo Edit .
Para obter ajuda sobre como aprender o Vim, tente digitar 'vimtutor' no seu terminal e siga as instruções. Há também um livro particularmente bom, o Hacking Vim
fonte
Não. Aprender vim vale mais que o esforço.
fonte