it-swarm.com.de

Wie kann ich eine Shell in einem Vim-Fenster öffnen?

Ich kann eine Shell mit dem Befehl: Shell in Vim öffnen, jedoch kann ich keine Datei bearbeiten und gleichzeitig die Shell verwenden.

Gibt es eine Möglichkeit, Vim in vielen Fenstern (oder Registerkarten) aufzuteilen und in einem davon eine Shell zu öffnen?

92
Martín Fixman

Nun, es hängt von Ihrem Betriebssystem ab - eigentlich habe ich es nicht unter MS Windows getestet -, aber Conque ist eines der besten Plugins, die es gibt.

Eigentlich kann es besser sein, funktioniert aber. 

45
Zsolt Botykai

In letzter Zeit, aber als hilfreicher Hinweis für Menschen, die über Google hierher kommen.

Neovim und Vim 8 unterstützen dies nun nativ über den Befehl terminal.

29
prater

:vsp oder :sp - teilt vim in zwei Instanzen auf, aber Sie können: Shell nur in einer von ihnen verwenden.

Warum nicht eine andere Registerkarte des Terminals anzeigen, nicht eine andere Registerkarte von vim. Wenn Ihnen die Idee gefällt, können Sie es ausprobieren: Ctrl-shift-t. und mit Ctrl - pageup und Ctrl - pagedown zwischen ihnen wechseln.

Wenn Sie nur ein paar Shell-Befehle benötigen, können Sie mit ! einen beliebigen Shell-Befehl in vim erstellen.

Zum Beispiel :!./a.out.

19
vladv

Wenn Sie es noch nicht herausgefunden haben, können Sie das erstaunliche screen plugin verwenden.

Conque ist auch außergewöhnlich, aber ich finde den Bildschirm viel praktischer (er wird zum Beispiel Ihren Puffer nicht "wegwerfen" und Sie können einfach die Befehle senden, die Sie nach dem Bearbeiten in Ihrem Puffer wirklich wünschen)

8
Eelvex

Sie können tmux oder screen (second kann nur horizontale Teilungen ohne Patch durchführen), um Ihr Terminal zu teilen. Aber ich weiß nicht, wie ich eine Instanz von Vim in beiden Bereichen haben kann.

7
ZyX

Ich denke, das ist eine ziemlich alte Frage, aber jetzt im Jahr 2017. Wir haben Neovim, eine Gabel von Vim, die Terminal-Unterstützung hinzufügt.

Wenn Sie :term aufrufen, wird ein Terminalfenster geöffnet. Das Schöne an dieser Lösung im Gegensatz zur Verwendung von tmux (einem Terminalmultiplexer) ist, dass Sie die gleichen Fenstereinheiten wie Ihre vim-Konfiguration verwenden. neovim ist mit vim kompatibel. Sie können also Ihren .vimrc kopieren und einfügen, und es funktioniert einfach.

Weitere Vorteile bestehen darin, dass Sie am geöffneten Terminal in den Normalmodus wechseln können und das Kopieren und Bearbeiten grundlegend durchführen können. Ich denke auch, dass es sehr nützlich für git-Commits ist, da alles, was sich in Ihrem Puffer befindet, automatisch vervollständigt werden kann.

Ich werde diese Antwort aktualisieren, da vim auch die Unterstützung von Terminals plant, wahrscheinlich in vim 8.1. Sie können den Fortschritt hier verfolgen: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM

Sobald es veröffentlicht ist, glaube ich, dass dies ein besseres Setup ist als die Verwendung von tmux.

5
chriz

Shougo's VimShell , das Dateinamen automatisch vervollständigen kann, wenn es mit neocomplcache verwendet wird

3
kuroz

Nicht unbedingt das, wonach Sie fragen, aber Sie interessieren sich vielleicht für mein Plugin vim-notebook , mit dem der Benutzer einen Hintergrundprozess am Leben erhalten und einen Teil des aktuellen Dokuments auswerten kann (und die Ausgabe in schreiben kann das Dokument). Es ist für die Verwendung in Dokumenten im Notebook-Stil vorgesehen, die Code-Teile enthalten, die ausgewertet werden sollen.

1
Thomas Baruchel

Ich verwende derzeit tmux.

Installation: Sudo apt-get install tmuxLauf es: tmux

Strg + b gefolgt von Strg +%: Es teilt das Terminalfenster in zwei vertikale Hälften auf.

Strg + "Pfeil links | Pfeil rechts": bewegt sich zwischen Terminals.

0

Sie können ein "Bildschirm" -Programm öffnen, Geteilter Bildschirm, Shell auf einem und vim auf einem anderen öffnen.

0
mrcybul