Normalmente, organizo uma screensessão 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 possui um REPL decente, normalmente eu a executo na janela 2. Claro, você não precisa screenfazer isso; você poderia fazer isso com diferentes janelas de terminal ou com guias em um terminal com várias guias. Acho que sou screenmais estável do que outras alternativas: se o aplicativo do terminal travar, basta iniciar outro terminal e reconectar-se à sua screensessão ainda em execução . screentambém é muito rápido para navegar depois que você o aprende (assim como o próprio vim).
Eu geralmente acabo usando a sessão do shell para atividades complicadas de controle de versão, como rebasing ou mesclagem: coisas mais simples podem ser feitas na linha de comando do vim (por exemplo, :!git commit % -m 'Added info abouttela .') ou usando o addon fugitivo . Acho fugitivos :Gmove(renomear o buffer atual tanto no vim quanto no índice git) e :Gdiff(invoco vimdiff no buffer atual com um ponto anterior em sua história) 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 seu código e confirmar com:%!git commit -F /dev/stdin
Também usarei a sessão do shell para testes funcionais / de integração, se for aplicável ao que estiver trabalhando, por exemplo, se estiver escrevendo um utilitário de linha de comando.
Funcionalidade quickfix do Vim é útil para depurar, embora não parece ser um complemento 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 de teclas de função ou seqüências de teclas começando com \ou ,, ou para comandos personalizados, ou sendo chamado automaticamente quando um buffer é salvo. Até agora, eu realmente não me preocupei em esclarecer isso, e apenas li os resultados dos testes de unidade ou fiapos em um buffer temporário usando, por exemplo :r !python -m doctest whatever.py. Modifique o código, volte para o buffer temporário, upara desfazer e pressione :ra seta para cima (na maioria das vezes) 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., :makeserá feita uma compilação, e o suporte para a lista de correções rápidas está bem estabelecido. Então você pode fazer :copenpara exibir o buffer do quickfix. Ele mostrará uma lista de erros, um por linha; bater Enterem uma linha irá pular sua outra janela para aquele ponto nesse arquivo.
Se estiver trabalhando com vários projetos ao mesmo tempo, é possível :lmakeorganizar uma lista de erros a serem armazenados na lista de localizações : é como a lista de correções rápidas, mas está associada a uma única janela em vez de ser um singleton dentro de sua lista. instância vim. :lopenabrirá uma lista de locais para a janela atual.