Existe uma maneira de acessar o terminal enquanto estiver usando o Vim ?
Não gosto de abrir outro terminal ou salvar e sair do terminal atual.
Existe uma maneira de acessar o terminal enquanto estiver usando o Vim ?
Não gosto de abrir outro terminal ou salvar e sair do terminal atual.
Respostas:
Você pode enviar o sinal SIGTSTP ao vim. Você faz isso pressionando ctrl+ z. O Vim será suspenso em segundo plano e você pode usar o terminal. Digite fg
o terminal para continuar com o vim.
Dica de bônus: funciona em quase todas as aplicações de terminal. Use bg
para permitir que o aplicativo continue sendo executado em segundo plano.
%
vez de fg
. Ou %1
, %2
etc., se você tiver muitos trabalhos em segundo plano. jobs
comando irá listá-los. (Assumindo bash
como o escudo.)
No vim, digite:
:!sh
:!
lança um processo externo - nesse caso sh
, outro shell. O controle retornará ao vim assim que você sair do shell. Se você deseja usar o shell simultaneamente com o vim, adicione &
ao final do comando sh:
:!sh&
:shell
.
http-server
ele imprime os logs que eu quero visualizar? Eu gostaria de poder mudar para meus arquivos, fazer edições e voltar para os logs.
Você pode usar o :shell
comando (ou o formato abreviado :sh
). De :help :shell
:
Este comando inicia um shell. Quando o shell sair (após o comando "exit"), você retornará ao Vim. O nome do comando shell vem da opção 'shell'.
Por padrão, no Ubuntu, isso dará a você o bash. digite exit
para retornar ao vim quando terminar.
Desde o vim recente, agora você pode:
:terminal
Isso foi adicionado inicialmente no Vim 8.0.693 , mas com muitos bugs. Veja :help terminal
:
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
The terminal feature is optional, use this to check if your Vim has it:
echo has('terminal')
If the result is "1" you have it.
[...]
The terminal feature requires the +multi_byte, +job and +channel features.
==============================================================================
1. Basic use terminal-use
This feature is for running a terminal emulator in a Vim window. A job can be
started connected to the terminal emulator. For example, to run a shell:
:term bash
Or to run a debugger:
:term gdb vim
The job runs asynchronously from Vim, the window will be updated to show
output from the job, also while editing in any other window.
Como complemento a todas as respostas.
Você pode instalar o plugin ConqueTerm
Este plugin fornece a capacidade de executar programas interativos dentro dos buffers do vim.
Após a instalação, você pode adicionar estas 2 linhas ao seu .vimrc
:
:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>
E você poderá executar bash
pressionando Shift+ Te fechar a guia Conque atual pressionando Shift+W
É perferct se você precisar abrir / fechar rapidamente bash
.
Aqui está o gif que mostra como é a aparência
Outra opção com a tela ou o byobu é abrir uma guia dentro desses programas. Esses programas facilitam bastante a manutenção de um shell cq da sessão de terminal aberto e a alternância entre essas telas com o teclado.
Com a nova versão do vim 8.1, tudo o que você precisa fazer é apenas :terminal
e pronto! (isso é incorporado)