Como posso interagir com a linha de comando através de um console se eu tiver o vim aberto?

4

Estou ciente de que posso fazer !commands , mas gostaria de integrar de alguma forma um shell no vim. Ou eu poderia usar a tela e dividir a tela para que o vim ocupe a metade da tela?

    
por meder omuraliev 12.11.2010 / 20:21

4 respostas

9
Ctrl Z suspenderá o vim e retornará o controle para o bash. Use fg para retornar ao vim.

    
por 12.11.2010 / 20:26
5

A integração de subprocessos é o principal ponto fraco do Vim. Há nenhum suporte interno para uma janela do shell , mas você pode tentar o plugin do vimsh .

Na tela, pressione C-a c para criar uma nova janela (tela cheia). Pressione C-a p ou C-a n para mover para a janela anterior / seguinte ( C-a space também se move para a próxima janela). Além disso, o comando split ( C-a S ) dividirá sua tela em duas regiões; você pode usar um para um shell e outro para o Vim. Pressione C-a tab para alternar entre regiões.

Você sempre pode pressionar Ctrl + Z para suspender o Vim e executar comandos no shell pai; digite fg para retornar ao Vim. Ou você pode usar :shell para criar um subnível (tela cheia); digite exit para retornar ao Vim.

    
por 12.11.2010 / 21:36
3

Como você sugere, eu usaria apenas a tela.

  • screen
  • ^ A-c para criar uma nova janela
  • ^ A-S para dividir a tela horizontalmente em duas regiões (algumas versões têm Ctrl- | para dividir verticalmente)
  • ^ A-Tab para ir para a nova região
  • ^ A-n para alterar a região para a próxima janela

Se você não quiser exatamente a metade e a metade, você pode:

  • ^ A- + para aumentar o tamanho da região atual

Se você precisa ver o que está no vim quando está na linha de comando, este é um bom caminho a percorrer. Se você não o método Ctrl-Z / fg já mencionado é o caminho a percorrer.

    
por 12.11.2010 / 22:05
2

Você também pode usar: shell para gerar apenas um shell. Digite exit ou Ctrl + D para sair do shell e retornar ao vim. Se você quer que ambos sejam executados simultaneamente, usar fg / bg (por Ignacio), tela (como você sugeriu) ou apenas dois terminais separados (xterms, consoles virtuais, o que for) são as melhores opções para você.

Se você for ao vim.org, você provavelmente encontrará uma extensão que inicia um shell diretamente, mas você está chegando perigosamente perto do emacs naquele ponto. ;) Veja um exemplo usando a tela: link

    
por 12.11.2010 / 21:37