Estou começando a aprender o Vim e seguindo alguns dos conselhos dados aqui na stackexchange. Estou começando a usá-lo em alguns projetos de brinquedos e sou legal com isso.
Mas comecei a pensar em como você pode ser produtivo sem abrir outros arquivos o tempo todo, apenas para saber como está o nome dessa classe, qual é a macro incluída em outro arquivo etc. etc.
Quais são os conselhos comuns que você pode dar?
vim
large-scale-project
Matias
fonte
fonte
Respostas:
Um aspecto de programadores experientes que passam de um IDE para um ambiente de console / xterm é encontrar um substituto para a indexação de objetos de código-fonte (nomes de funções, variáveis). Acredito que o termo geral usado para o Visual Studio da Microsoft seja Intellisense ou algo parecido.
No mundo Unix / Linux, como o vim, uma ferramenta usada se
ctags
ou na popular implementação de código aberto de múltiplos idiomas, ctags exuberantes . Não évim
específico e é suportado por vários editores de texto Unix, Linux, MS Windows, Mac OS, incluindo Emacs, CRiSP, vile e vários outros vi clones, nedit, gedit, JED, UltraEdit, BBEdit e DreamWeaver (alguns deles são via plugins de terceiros).Além disso, um bom design e uma decomposição cuidadosa, a organização de projetos maiores torna o projeto gerenciável, pois existem apenas 1-2 possíveis locais óbvios para procurar qualquer bit de informação (
typedef
ouclass
definições, etc.).Também uso várias instâncias do vim (geralmente via
view
para visualização somente leitura de arquivos de origem), bem como um uso limitado de vários buffers de edição por instância do vim (principalmente para mover ou refatorar o código entre arquivos). Acho que o uso de apenas alguns arquivos de origem abertos por vez pode ajudar de maneira pequena, para me manter focado na tarefa em mãos.fonte
Não pretendo fazer parte do debate VIM vs. IDE. Eu acho que é pref pessoal. Mas eu uso muito o VIM e aqui está o porquê de eu ser muito poderoso usar o vim
Duas partes da resposta:
R. A maioria das coisas que o VIM permite tudo que você pode fazer com IDEs (não estou tentando colocar todos os recursos, mas apenas alguns não-óbvios que fazem o vi parecer limitador)
você pode percorrer os protótipos se tiver
ctags
ativado e fizerctrl+{
Você pode abrir várias janelas simultaneamente, cantar: sp 'filename' comando. É claro que em algum momento eu abro vários terminais para facilitar a vida.
Destaque poderoso da sintaxe. Padrão, assim como outras coisas. Além disso, ao contrário de alguns IDEs, se houver uma incompatibilidade de chaves abertas, cadeia ou não coincidir com chaves fechadas, fornece uma indicação muito clara. É para a maioria dos idiomas, e não específico.
Você pode executar a linha de comando usando o comando
":!make"
sem sair da janela.Percorra muito mais rápido com base em palavras, com base em pesquisa (vi suporta regexp se você estiver disponível) e você pode percorrer { to } usando
ESC %
É possível trabalhar no GDB durante a depuração de etapas e mantendo o vi (em outra janela para trabalhar no código). Quando você decide alterar o arquivo, pode fazê-lo novamente e recarregá-lo no GDB.
B. Muitas coisas que você acha melhor no VIM
Pesquisa e substituição são definitivamente muito mais poderosas.
Você pode criar sua aparência personalizada e (preto + verde em vez de branco + azul) e, mais importante, seu próprio comando poderoso.
Seleção de bloco vertical. Tente
ctrl+v
mover o cursor verticalmente. Este é realmente um recurso inimaginável!Parece estranho - mas tente cortar / copiar um bloco e ter que ultrapassá-lo 30 vezes! Não é preciso mais esforço do que fazê-lo uma vez. Além disso, tente refazer (não desfazer) uma atividade uma ou várias vezes.
Recuo automático, controle de guia e maneira automatizada de converter seus comentários em bloco de comentários ou comentários de estilo específico.
Confusão de mesclagem eficaz com vimdiff.
O mais importante no ambiente de trabalho baseado em console é que você nunca toca no MOUSE! portanto, se você é rápido no teclado, os IDE não são bons.
Trabalhe em várias máquinas, servidores simultaneamente! Não parece óbvio, mas às vezes, quando você trabalha no servidor, efetua login diretamente em várias máquinas e faz as coisas.
Responderá sobre como fazer no vi se esses recursos estiverem em demandas sérias. Veja este site Vimcast . claro, existem muitos.
Mas sim, a maioria das coisas baseadas em console é antiquada, e de maneira alguma estou dizendo algo contra IDEs.
fonte
:make
comando embutido, você nem precisa do!
(que, para quem não usa o vim, executa um comando no terminal). Acabei de encontrá-loctrl-v
há algumas semanas e agora o uso constantemente, é incrivelmente útil.:make
disso é que ele o move automaticamente para o primeiro erro, e você pode navegá-los comcn
ecp
, consulte:help make
. Na verdade, eu não percebi isso até procurar; Eu costumo criar em uma janela diferente e em pwd, parece que você precisa estar no mesmo que o Makefile, embora você possa colocar um no diretório src apenas para mover para a raiz e fazer lá.Na minha opinião, o Vim oferece um editor muito forte com recursos básicos, mas cabe a você incrementar os scripts / addons que você provavelmente usará em seus projetos. Provavelmente, eles serão diferentes, dependendo de você editar principalmente scripts, documentação ou arquivos que precisam ser compilados.
Como exemplo, eu uso
zencoding
para a edição de html / css ocasional,snipmate
para Textmate-like trechos, e um par de add-ons python-relacionada (pyflakes
,pep8
,vimpdb
, etc.) para Python de codificação, que é o que eu faço na maioria das vezes.Existem outros addons que eu não uso com frequência, mas ainda os acho úteis de vez em quando, como
Dpaste
eConqueTerm
.Ainda assim, para mim, os recursos mais úteis do Vim são integrados (desfazer com base no tempo, navegação rápida, filtros de intervalo etc.) - coisas que não consegui encontrar (ou pelo menos não são tão fáceis de acessar) ) nos IDEs. Portanto, depois de configurar seu Vim para ter os bits e partes de um IDE que você realmente precisa (
snipmate
,ctags
...), você poderá obter o benefício dos ambientes de IDE e de console.Meu uso do Vim é somente para console, então não posso dizer o quão útil essas ferramentas são com o Gvim.
Apesar de toda a bondade dos addons, no entanto, ainda me vejo correndo
!grep ...
ou de^Z + find ...
vez em quando.fonte
Eu faço toda a minha programação no vim. Na verdade, acho mais fácil do que qualquer IDE que usei. Você pode abrir vários arquivos ao mesmo tempo, mesmo na mesma tela (procure guias e janelas). Normalmente, estou trabalhando no X, por isso tenho várias (6) telas xterm abertas: uma para arquivos c no vim (várias guias), outra para cabeçalhos no vim (também guias) e janelas que não são do vim: build, debug , configuração, etc. Mesmo quando estou em um console puro, posso usar guias, janelas e dobra de código para ver o que preciso, criar, e até visualizar páginas de manual sem sair do vim, você só precisa conhecer o comandos certos. E há tantos, tenho certeza que nem sequer dominei metade deles. E é difícil superar a pesquisa e a substituição do vim.
fonte
Muitas aplicações em larga escala foram (minhas, pelo menos, duas;), e meu palpite é que muitas outras serão escritas completamente no Vim. Os IDEs ainda são uma inovação bastante moderna , por assim dizer.
No entanto, vanilla simples vi (ai) ou Vim são um pouco ausentes. Conhecer o Vim e pensar de algumas maneiras ajuda um pouco, e os plug - ins ajudam muito , para os quais www.vim.org é uma fonte inesgotável de. Alguns específicos para o idioma que você está usando e outros gerais (para comentar, para navegar em arquivos, para ...) o transformam rapidamente em um ambiente de desenvolvimento muito rápido. Afinal (e alguns certamente argumentarão), um IDE é apenas um editor com plugins compactados em uma interface melhor. Também não há muita coisa gráfica em um IDE.
fonte