C'è un modo per accedere al terminale mentre si utilizza Vim ?
Non mi piace aprire un altro terminale o salvare ed uscire dal terminale corrente.
C'è un modo per accedere al terminale mentre si utilizza Vim ?
Non mi piace aprire un altro terminale o salvare ed uscire dal terminale corrente.
Risposte:
È possibile inviare a Vim il segnale SIGTSTP. Puoi farlo premendo ctrl+ z. Vim verrà sospeso in background e puoi usare il terminale. Digita fg
il terminale per riprendere con vim.
Suggerimento bonus: funziona su quasi tutte le applicazioni terminali. Utilizzare bg
per abilitare l'applicazione a continuare l'esecuzione in background.
%
invece di fg
. Oppure %1
, %2
ecc. Se hai molti lavori in background. jobs
il comando li elencherà. (Supponendo bash
come il guscio.)
In vim, basta digitare:
:!sh
:!
avvia un processo esterno - in questo caso sh
, un'altra shell. Il controllo tornerà a VIM una volta usciti dalla shell. Se si desidera utilizzare la shell contemporaneamente a vim, aggiungere &
alla fine del comando sh:
:!sh&
:shell
.
http-server
e stampa i registri che voglio visualizzare? Mi piacerebbe essere in grado di passare ai miei file, apportare modifiche, quindi tornare ai registri.
È possibile utilizzare il :shell
comando (o la forma abbreviata :sh
). Da :help :shell
:
Questo comando avvia una shell. Quando la shell esce (dopo il comando "exit") si ritorna a Vim. Il nome per il comando shell deriva dall'opzione 'shell'.
Di default, su Ubuntu, questo ti darà bash. digitare exit
per tornare a VIM quando hai finito.
Dalla recente vim ora puoi fare:
:terminal
Questo è stato inizialmente aggiunto in Vim 8.0.693 , ma con molti bug. Vedi :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.
Come aggiunta a tutte le risposte.
Puoi installare il plugin ConqueTerm
Questo plugin offre la possibilità di eseguire programmi interattivi all'interno di buffer vim.
Dopo l'installazione puoi aggiungere queste 2 righe al tuo .vimrc
:
:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>
E sarai in grado di eseguire bash
premendo Shift+ Te chiudere la scheda Conque corrente premendo Shift+W
È perfetto se hai bisogno di aprire / chiudere velocemente bash
.
Ecco GIF che mostra come è
Un'altra opzione con schermo o byobu è quella di aprire una scheda all'interno di tali programmi. Questi programmi rendono abbastanza facile mantenere aperta una shell cq di sessione terminale e passare da una schermata all'altra con la tastiera.
Con la nuova versione di vim 8.1 tutto ciò che devi fare è solo :terminal
e voilà! (questo è incorporato)