Gibt es eine Möglichkeit, während der Verwendung von Vim auf das Terminal zuzugreifen ?
Ich möchte kein anderes Terminal öffnen oder speichern und das aktuelle Terminal verlassen.
Gibt es eine Möglichkeit, während der Verwendung von Vim auf das Terminal zuzugreifen ?
Ich möchte kein anderes Terminal öffnen oder speichern und das aktuelle Terminal verlassen.
Antworten:
Sie können das SIGTSTP-Signal senden. Sie tun dies durch Drücken von ctrl+ z. Vim wird im Hintergrund angehalten und Sie können das Terminal verwenden. Geben Sie fg
das Terminal ein, um mit vim fortzufahren.
Bonus-Tipp: Dies funktioniert auf fast allen Terminalanwendungen. Verwenden Sie bg
diese Option , damit die Anwendung im Hintergrund weiter ausgeführt werden kann.
%
statt fg
. Oder %1
, %2
usw., wenn Sie viele Hintergrundjobs haben. jobs
Befehl listet sie auf. (Angenommen bash
, die Muschel.)
Geben Sie in vim einfach Folgendes ein:
:!sh
:!
Startet einen externen Prozess - in diesem Fall eine sh
andere Shell. Die Steuerung kehrt zu vim zurück, sobald Sie die Shell verlassen. Wenn Sie die Shell gleichzeitig mit vim verwenden möchten, fügen Sie &
am Ende des Befehls sh Folgendes hinzu:
:!sh&
:shell
.
http-server
sieht es aus, wenn der Befehl einen Server ausführt und Protokolle ausgibt, die ich anzeigen möchte? Ich möchte in der Lage sein, auf meine Dateien umzuschalten, Änderungen vorzunehmen und dann zu den Protokollen zurückzukehren.
Sie können den :shell
Befehl (oder die Kurzform :sh
) verwenden. Von :help :shell
:
Dieser Befehl startet eine Shell. Wenn die Shell beendet wird (nach dem Befehl "exit"), kehren Sie zu Vim zurück. Der Name für den Shell-Befehl stammt aus der Option 'shell'.
Standardmäßig erhalten Sie unter Ubuntu Bash. Geben Sie exit
zu vim zurückzukehren , wenn Sie fertig sind.
Seit der letzten Version können Sie nun Folgendes tun:
:terminal
Dies wurde ursprünglich in Vim 8.0.693 hinzugefügt , aber mit vielen Fehlern. Siehe :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.
Als Ergänzung zu allen Antworten.
Sie können das ConqueTerm-Plugin installieren
Dieses Plugin bietet die Möglichkeit, interaktive Programme in vim-Puffern auszuführen.
Nach der Installation können Sie diese 2 Zeilen zu Ihren hinzufügen .vimrc
:
:nnoremap <S-w> :q!<CR>
:nnoremap <S-t> :ConqueTermSplit bash<CR>
Und Sie können bash
durch Drücken von Shift+ ausführen Tund die aktuelle Registerkarte Conque durch Drücken von Shift+ schließenW
Es ist perfekt, wenn Sie schnell öffnen / schließen müssen bash
.
Hier ist gif das zeigt, wie es aussieht
Eine andere Option mit screen oder byobu ist das Öffnen einer Registerkarte in diesen Programmen. Mit diesen Programmen ist es relativ einfach, eine Terminal-Session-CQ-Shell geöffnet zu halten und mit der Tastatur zwischen diesen Bildschirmen zu wechseln.
Mit der neuen Version von vim 8.1 brauchen Sie nur noch :terminal
und voila! (dies ist eingebaut)