417 Stimmen

Wie kann ich ein Terminal innerhalb von Vim laufen lassen?

Ich bin an Emacs gewöhnt, aber ich probiere Vim aus, um zu sehen, welches Programm mir besser gefällt.

Eine Sache, die ich an Emacs mag, ist die Möglichkeit, ein Terminal innerhalb von Emacs laufen zu lassen. Ist dies innerhalb von Vim möglich? Ich weiß, dass man Befehle von Vim aus ausführen kann, aber ich würde gerne in der Lage sein, ein Terminal innerhalb einer Registerkarte laufen zu lassen.

99voto

tester Punkte 21100

:sh entonces Ctrl + D wieder hineinzukommen (bash)

Update :

Sie könnten eine Karte Ctrl + D in vim zum Ausführen :sh die es Ihnen ermöglicht, schnell zwischen bash und vim zu wechseln.

noremap <C-d> :sh<cr>

54voto

Yossarian42 Punkte 1792

Die wichtigste neue Funktion von Vim 8.1 ist die Unterstützung für die Ausführung eines Terminals in einem Vim-Fenster.

:term wird das Terminal in einem anderen Fenster innerhalb von Vim geöffnet.

45voto

flarn2006 Punkte 1615

:term

Hinzugefügt in Vim 8.1.

Denken Sie daran, dass die meisten Tastenanschläge, wenn ein Terminalfenster aktiv ist, einfach an das Terminal weitergegeben werden, anstatt ihre üblichen Funktionen zu haben. Ctrl-W und seine Unterbefehle sind die wichtigste Ausnahme. Um ein Literal zu senden ^W Eingabe in das Terminal, drücken Sie Ctrl-W . . Sie können auch den Vim öffnen : Befehlszeile durch Drücken von Ctrl-W : . Die andere Ctrl-W Befehle funktionieren wie gewohnt, so dass die Verwaltung von Fenstern immer gleich funktioniert, egal welche Art von Fenster gerade ausgewählt ist.

45voto

fjardon Punkte 7738

Schließlich ein Einheimischer :terminal Befehl wurde 2017 zu vim hinzugefügt.

Hier ist ein Auszug aus der :terminal readme:

Diese Funktion dient dazu, einen Terminal-Emulator in einem Vim-Fenster laufen zu lassen. A Job kann in Verbindung mit dem Terminalemulator gestartet werden. Zum Beispiel, um eine Shell auszuführen:

 :term bash

Oder um den Befehl build auszuführen:

 :term make myprogram

Der Job läuft asynchron von Vim aus, das Fenster wird die Ausgabe des Jobs angezeigt, auch während des Editierens in einem anderen Fenster.

37voto

lahwran Punkte 583

Diese Frage ist schon ziemlich alt, aber für diejenigen, die sie finden, gibt es eine neue mögliche Lösung: Neovim enthält einen vollwertigen, erstklassigen Terminalemulator, der genau das tut, was ConqueTerm versucht hat. Führen Sie einfach :term <your command here> .

<C-\><C-n> verlässt den Termmodus und kehrt zum Normalmodus zurück. Wenn Sie wie ich sind und es bevorzugen, dass escape immer noch den Term-Mode beendet, können Sie dies zu Ihrer nvimrc hinzufügen:

tnoremap <ESC><ESC> <C-\><C-N>

Und dann drücken Sie ESC zweimal verlässt den Terminalmodus und kehrt in den Normalmodus zurück, so dass Sie den Puffer, in den der noch laufende Befehl schreibt, manipulieren können.

Da nvim zum Zeitpunkt der Veröffentlichung dieser Antwort noch in der Entwicklung ist, kann es sein, dass ein weiterer Weg zum Verlassen des Terminalmodus hinzugefügt wird. Wie Ctrl+\Ctrl+n schaltet in den normalen Modus von fast cualquier Modus, ich erwarte nicht, dass diese Antwort falsch wird, aber seien Sie sich bewusst, dass, wenn es nicht funktioniert, diese Antwort veraltet sein könnte.

https://github.com/neovim/neovim

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X