Quais são as melhores ferramentas de programação de propósito geral para complementar o Vim? [fechadas]

22

Eu tenho usado o Vim como meu editor de texto por um tempo agora e sinto que estou indo muito longe para fazer qualquer coisa. Eu uso ctags para marcar minha base de código para navegação e eu uso o grep (embora ineficientemente) para encontrar onde certos métodos são usados. Mas tenho a sensação de que existem algumas ferramentas muito úteis por aí que eu não conheço que poderiam 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 em uma base de código, executa o make, envia mudanças para o seu sistema de controle de origem, etc? Você tem um segundo console aberto ao lado do Vim?

    
por Louis Salin 12.08.2010 / 17:46

8 respostas

8

Um ótimo recurso do vim é a facilidade de integração com os comandos do shell existentes. Algumas das ferramentas externas mais úteis são aquelas incluídas em coreutils e outras ferramentas simples de maniplulação de texto. 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 combinado poderosamente com o comando :read ( :r ) para colocar a saída do comando no arquivo. Por exemplo:

:r !wc -l %

Colocará a contagem da linha de palavras no arquivo que você está editando.

Outra vantagem é substituir o texto que você está editando atualmente com a saída de um desses comandos. Por exemplo, você poderia formatar o arquivo inteiro com par executando o comando:

:% !par
    
por 10.08.2010 / 23:36
5

Eu acho o NERDtree indispensável para navegar pela minha base de código. Juntamente com isso, vale a pena investir algum tempo em tornar-se proficiente em movimentar seus buffers / windows.

    
por 11.08.2010 / 14:03
4

Qualquer que seja o seu idioma, você vai querer usar um recurso chamado ctags que permite navegar pelas definições de origem. Isso requer uma ferramenta externa para gerar arquivos TAGS que são usados pelo VIM para descobrir os locais de várias definições de código em um projeto.

Obtenha a ferramenta de ctags exuberante , que funciona para muitos idiomas e é simples de usar.

de VIM :help ctags

ctags criará um índice de todos os identificadores em uma árvore de fontes. Você pode então usar os comandos tag para navegar pela sua árvore de fontes. veja :help tag-commands . O mais fácil é posicionar o cursor sobre uma palavra-chave e pressionar CTRL - ] . Para voltar de onde você veio, pressione CTRL - T

Além disso, você pode examinar algumas dicas e melhorias do VIM discutidas aqui. , é uma discussão muito abrangente de algumas das coisas que podem ser feitas para melhorar a experiência de um Vimmer.

    
por 10.08.2010 / 22:55
4

O Vim é uma ferramenta muito poderosa, tenho certeza que todos vocês já sabem disso. Você começará a obter um aumento de produtividade usando o vim dentro de algumas semanas. Mas você nunca irá saturar seu conhecimento sobre o Vim. Então, eu estou sempre à procura de maneiras novas e eficientes de fazer as coisas no Vim. Há um cara chamado Derek Wyatt que fez alguns grandes screencasts no uso do Vim, e também nos plugins que ele usa.

Alguns dos plugins que eu uso

  1. command-t Isso facilita muito a navegação dos arquivos, e é muito inteligente .

    The Command-T plug-in provides an extremely fast, intuitive mechanism for opening files with a minimal number of keystrokes. It's named "Command-T" because it is inspired by the "Go to File" window bound to Command-T in TextMate.

  2. fuzzyfinder Eu uso isso principalmente para buffers de buffers e mudo o diretório atual.

    FuzzyFinder provides convenient ways to quickly reach the buffer/file/command/bookmark/tag you want. FuzzyFinder searches with the fuzzy/partial pattern to which it converted an entered pattern

  3. NERDTree Este é o melhor plugin de navegador de arquivos para o vim.

    The NERD tree allows you to explore your filesystem and to open files and directories. It presents the filesystem to you in the form of a tree which you manipulate with the keyboard and/or mouse. It also allows you to perform simple filesystem operations.

  4. XPTemplate O melhor plugin de templates do mundo.

    Code snippets engine for Vim, with snippets library. XPTemplate let you write codes in a smooth, quick and comfortable way.

  5. rails.vim Se você faz coisas do rails dev, isso é indispensável.

    TextMate may be the latest craze for developing Ruby on Rails applications, but Vim is forever. This plugin offers the following features for Ruby on Rails application development.

  6. NerdCommenter Facilita os comentários em qualquer tipo de código.

E esses são apenas alguns dos plugins que eu uso, Para baixar todos os plugins com o meu vimrc, confira meus dotfiles

    
por 13.08.2010 / 07:28
3

Existe um ótimo plugin para o VIM que verifica a sintaxe Syntastic . Há muitas outras ferramentas disponíveis também para gerenciamento de arquivos, construção, etc. Vá para o IRC #vim em freenode.net, há muitas pessoas úteis lá.

    
por 10.08.2010 / 22:54
3

meu favorito é o cscope. Se você compilou o vim com suporte ao cscope, você pode usar diretamente os comandos do cscope do VIM. por exemplo. procura de arquivos incluídos, funções chamadas pela função xyz, etc. Eu tentei com um repositório de código fonte muito grande. Isso ajuda muito.

link

    
por 10.08.2010 / 22:31
1

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 GDB no VIM. Eu realmente achei que fosse uma das melhores interfaces para o GDB que existe.

    
por 10.08.2010 / 22:58
0

Geralmente, configuro uma sessão screen para cada projeto. O Vim está na janela 0 e eu uso a janela 1 para uma sessão de shell. Se eu estou codificando em uma linguagem que tem um REPL decente, geralmente executo isso na janela 2. É claro que você não precisa de screen para fazer isso; você poderia fazê-lo com diferentes janelas de terminal ou com abas em um terminal multitab. Eu acho que o screen é mais estável do que outras alternativas: se o seu aplicativo do terminal falhar, você pode simplesmente iniciar outro terminal e reconectar a sua sessão screen ainda em execução. screen também é muito rápido para navegar uma vez que você aprende (muito parecido com o próprio vim).

Na maioria das vezes acabo usando a sessão shell para atividades de controle de versão complicadas, como rebasing ou mesclagem: coisas mais simples podem ser feitas na linha de comando do vim (por exemplo, :!git commit % -m 'Added info about screen .' ) ou usando o fugitivo addon. Eu acho fugitivo :Gmove (renomear o buffer atual tanto no vim e no índice git) e :Gdiff (invocar vimdiff no buffer atual com um ponto anterior em seu histórico) particularmente útil. Você também pode fazer coisas como criar uma mensagem de confirmação em um buffer temporário, copiar texto de várias partes do código e, em seguida, confirmar com :%!git commit -F /dev/stdin

Também usarei a sessão de shell para testes funcionais / de integração se isso for aplicável a qualquer coisa que eu esteja trabalhando, por exemplo, se eu estiver escrevendo um utilitário de linha de comando.

A funcionalidade de correção rápida do vim é útil para depuração, embora pareça haver um complemento diferente necessário para cada idioma em que você possa trabalhar. Eles também parecem usar uma variedade de técnicas de chamada, mapeamento para teclas de função ou seqüências de teclas. com \ ou , , ou para comandos personalizados, ou por ser invocado automaticamente quando um buffer é salvo. Até agora, eu não me preocupei muito em descobrir isso, e apenas leio os resultados dos testes unitários ou dos fiapos em um buffer de rascunho usando, por ex. %código%. Modifique o código, volte para o buffer de rascunho, :r !python -m doctest whatever.py para desfazer, em seguida, pressione u e a seta para cima (na maior parte do tempo) para recuperar esse comando. Mas pode valer a pena procurar um complemento para isso, dependendo do idioma em que você trabalha.

Para linguagens compiladas populares como C, java, etc., :r fará uma compilação e o suporte para a lista de correcções rápidas está bem estabelecido. Então você pode fazer :make para exibir o buffer de correção rápida. Ele mostrará uma lista de erros, um por linha; Se você pressionar Enter em uma linha, a outra janela será posta nesse ponto nesse arquivo.

Se você estiver trabalhando com vários projetos por vez, poderá fazer :copen para organizar uma lista de erros a serem armazenados na lista de locais : é como a lista de correções rápidas, mas está associado a uma única janela em vez de ser um singleton dentro de sua instância vim. :lmake abrirá uma lista de localização para a janela atual.

    
por 03.04.2011 / 02:10