Eu tenho usado vim como meu editor de texto por um tempo agora e eu sinto que estou assumindo o longo caminho para fazer qualquer coisa. Eu uso CTAGs para marcar minha base de código para navegação e uso grep (embora ineficientemente) para encontrar onde determinados métodos são usados. Mas tenho a sensação de que existem algumas ferramentas muito úteis por aí que não sei sobre isso poderia me tornar mais produtivo.
Qual é a melhor pilha de software que eu poderia usar para programação geral que complementaria o VIM? Como você navega uma base de código, executando, pressiona as alterações no seu sistema de controle de origem, etc? Você tem um segundo console aberto ao lado de Vim?
Um ótimo recurso de VIM é a facilidade de integração com comandos de shell existentes. Algumas das ferramentas externas mais úteis são as que estão incluídas em Coreutils e outras ferramentas de maniplulação de texto simples. Por exemplo, podemos obter o número de linhas em um arquivo com:
:! wc -l %
ou o número de palavras:
:! wc -w %
Qualquer comando que funcione no shell funcionará aqui. Isso pode ser poderosamente combinado com o comando :read
(:r
) Para colocar a saída do comando no arquivo. Por exemplo:
:r !wc -l %
Vai colocar a contagem de linha da palavra para o arquivo que você está editando.
Outra vantagem disso é substituir o texto que você está editando atualmente com a saída de um desses comandos. Por exemplo, você pode formatar o arquivo inteiro com par
executando o comando:
:% !par
Eu acho Nerdtree indispensável por navegar pela minha faixa de código. Ao lado disso, investir algum tempo em se tornar proficiente em se mover em torno de seus buffers/windows vale a pena.
Seja qual for a sua linguagem, você queira usar um recurso chamado ctags que permite navegar em torno de definições de origem. Isso requer uma ferramenta externa para gerar arquivos de tags usados por VIM para descobrir os locais de várias definições de código em um projeto.
Obter o exuberant ctags Ferramenta, funciona para muitos vários idiomas e é simples de usar.
de VIM :help ctags
ctags criará um índice de todos os identificadores em uma árvore de origem. Você pode então usar os comandos da tag para navegar pela árvore de origem. Vejo :help tag-commands
. O mais fácil é colocar o cursor em uma palavra-chave e pressione CTRL-]. Para voltar para onde você veio da imprensa CTRL-T
Além disso, você pode querer olhar para alguns dos VIM dicas e melhorias discutidas aqui , é uma discussão muito abrangente de algumas das coisas do que pode ser feito para melhorar Experiência de um vimador.
Vim é uma ferramenta muito poderosa, tenho certeza que todos vocês já sabem disso. Você começará a obter um impulso de produtividade usando o VIM dentro de algumas semanas. Mas você nunca será saturará seu conhecimento do vim. Então, eu, por exemplo, estou sempre à procura de maneiras novas e eficientes de fazer as coisas no vim. Há um cara chamado Derek Wyatt Quem fez alguns grandes screencasts no uso do vim, e também nos plugins ele usa.
Alguns dos plugins que eu uso
Command-t Isso faz de navegar arquivos de uma brisa e é muito inteligente .
O plug-in do comando-T fornece um mecanismo intuitivo extremamente rápido para abrir arquivos com um número mínimo de pressionamentos de tecla. É nomeado "Command-t" porque é inspirado na janela "Ir para o arquivo" ligada a command-t em TextMate.
Fuzzyfinder Eu uso isso principalmente para buffers do Broswer e alterar o diretório atual.
Fuzzyfinder fornece maneiras convenientes para alcançar rapidamente o buffer/arquivo/comando/bookmark/tag que você deseja. FuzzyFinder procura com o padrão fuzzy/parcial para o qual ele converteu um padrão inserido
nerdtree Este é o melhor plugin do navegador de arquivos para o VIM.
A árvore Nerd permite que você explore seu sistema de arquivos e abra arquivos e diretórios. Ele apresenta o sistema de arquivos para você na forma de uma árvore que você manipula com o teclado e/ou mouse. Também permite que você execute operações simples do sistema de arquivos.
Xptemplate o melhor plugin de modelos do mundo.
Mecanismo de trechos de código para vim, com biblioteca de snippets. Xptemplate permite escrever códigos de maneira suave, rápida e confortável.
Rails.vim Se você fizer Rails Dev Stuff, isso é indispensável.
TextMate pode ser a última mania para o desenvolvimento Ruby em Rails Aplicativos, mas o vim é para sempre. Este plugin oferece os seguintes recursos para Ruby em Rails Desenvolvimento de aplicativos.
NerdCommenter Faz comentar em qualquer tipo de código fácil.
E esses são apenas alguns dos plugins que eu uso, para baixar todos os plugins com meu Vimrc, checkout my DotFiles
meu favorito é o CSCOPE. Se você tiver compilado vim com suporte a CSCOP, você pode usar diretamente os comandos do CSCOPE do VIM. por exemplo. Procurando por arquivos incluídos, funções chamadas por função xyz, etc. Eu tentei com um repositório de código fonte muito grande. Isso ajuda muito.
Há um ótimo plugin para VIM que faz a verificação de sintaxe syntastic . Existem muitas outras ferramentas disponíveis também para gerenciamento de arquivos, construção, etc. Vá para IRC #VIM no Freenode.net, há muitas pessoas úteis lá.
Se você estiver programando em qualquer um dos idiomas suportados pelo GCC (C, C++, Java, Fortran) então Clewn é um ótimo plugin que integra o depurador do GDB no VIM. Eu realmente achei que seja uma das melhores interfaces ao GDB que existe.
Eu costumo configurar um screen
sessão para cada projeto. O Vim está na janela 0 e eu uso a janela 1 para uma sessão de shell. Se eu estiver codificando em um idioma que tenha um decente REPL Eu normalmente executo isso na janela 2. Claro, você não precisa screen
para fazer isso; você poderia Faça isso com diferentes janelas terminais ou com guias em um terminal multitab. Eu faço screen
para ser mais estável do que outras alternativas: Se o seu aplicativo de terminal trava, você poderá simplesmente iniciar outro terminal e reconectar-se à sua corrida ainda screen
sessão. screen
também é muito rápido para navegar em uma vez que você aprende (muito parecido com o próprio Vim).
Eu principalmente acabo usando a sessão do shell para atividades complicadas de controle de versão, como rebancar ou mesclar: coisas mais simples podem ser feitas a partir da linha de comando da VIM (e. :!git commit % -m 'Added info about
tela.'
) ou usando o fugitivo addon. Eu encontro o fugitivo :Gmove
(renomeie o tampão atual tanto no VIM quanto no índice do Git) e :Gdiff
(invocar o Vimdiff no tampão atual com um ponto anterior em seu histórico) particularmente útil. Você também pode fazer coisas como construir uma mensagem de confirmação em um buffer de riscos, copiando em texto de várias partes do seu código e, em seguida, cometendo com :%!git commit -F /dev/stdin
Também usarei a sessão do Shell para testes funcionais/integração, se for aplicável a qualquer que eu esteja trabalhando, por exemplo, se estou escrevendo um utilitário de linha de comando.
A funcionalidade QuickFix da Vim é útil para depuração, embora pareça ser um addon diferente necessário para cada idioma que você pode querer trabalhar. Eles também parecem usar uma variedade de técnicas de invocação, mapeamento para as teclas de função ou para as principais seqüências que começam com \
ou ,
, ou para comandos personalizados, ou sendo automaticamente invocados quando um buffer é salvo. Até agora eu realmente não me incomodei em suportar isso, e basta ler o teste de unidade ou a fiapos resulta em um buffer de riscos usando e. :r !python -m doctest whatever.py
. Modificar código, alternar para o buffer de risco, u
para desfazer e, em seguida, bater :r
e a seta para cima (a maior parte do tempo) para obter esse comando de volta. Mas pode valer a pena procurar um addon para isso, dependendo de qual idioma você trabalha.
Para idiomas compiladas populares como C, Java, etc., :make
fará uma compilação e o suporte para a lista Quickfix está bem estabelecida. Então você pode fazer :copen
Para exibir o buffer Quickfix. Ele mostrará uma lista de erros, uma por linha; batendo Enter Em uma linha vai pular sua outra janela para esse ponto nesse arquivo.
Se você estiver trabalhando com vários projetos de cada vez, você pode fazer :lmake
Para providenciar uma lista de erros a serem armazenados na lista de local : Isso é como a lista QuickFix, mas está associada a uma única janela em vez de sendo um singleton dentro da sua instância vim. :lopen
abrirá uma lista de localização para a janela atual.