Acesso ao terminal enquanto você estiver no Vim

35

Existe uma maneira de acessar o terminal usando o Vim ?

Eu não gosto de abrir outro terminal ou salvar e sair do terminal atual.

    
por Mohammad Reza Rezwani 12.07.2014 / 14:39

6 respostas

60

Você pode enviar o sinal SIGTSTP para o vim. Você faz isso pressionando ctrl + z . O Vim será suspenso em segundo plano e você poderá usar o terminal. Digite fg no terminal para continuar com o vim.

Dica de bônus: funciona em quase todas as aplicações do terminal. Use bg para permitir que o aplicativo continue sendo executado em segundo plano.

    
por noleti 12.07.2014 / 14:49
34

No vim, apenas digite:

:!sh

:! inicia um processo externo - nesse caso, sh , outro shell. O controle retornará ao vim assim que você sair do shell. Se você quiser usar o shell simultaneamente com o vim, adicione & ao final do comando sh:

:!sh&
    
por sbell 12.07.2014 / 15:22
20

Você pode usar o comando :shell (ou o formato abreviado :sh ). De :help :shell :

  

Este comando inicia um shell. Quando o shell sai (após o comando "exit") você retorna ao Vim. O nome do comando shell vem da opção 'shell'.

Por padrão, no Ubuntu, isso vai te dar uma surpresa. digite exit para retornar ao vim quando terminar.

    
por evilsoup 12.07.2014 / 19:17
6

Além de todas as respostas.

Você pode instalar o plug-in ConqueTerm

Este plugin fornece a capacidade de executar programas interativos dentro dos buffers vim.

Após a instalação, você pode adicionar essas duas linhas ao seu .vimrc :

:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>

E você poderá executar bash pressionando Shift + T , e fechar a guia atual do Conque pressionando Shift + < kbd> W

É perferct se você precisar abrir / fechar rapidamente bash .

Aqui está gif que mostra como é a aparência

    
por c0rp 14.07.2014 / 13:38
3

Outra opção com tela ou byobu é abrir uma guia dentro desses programas. Estes programas tornam bastante fácil manter uma sessão de terminal c.q. shell aberto e alternar entre essas telas com o teclado.

    
por immeëmosol 15.07.2014 / 09:11
3

Desde o recente vim, você pode fazer agora:

:terminal

Isso foi adicionado inicialmente no Vim 8.0.693 , mas com muitos bugs. Consulte :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.
    
por gauteh 31.08.2017 / 11:23