Ich kann eine Shell mit dem Befehl: shell in Vim öffnen, jedoch keine Datei bearbeiten und gleichzeitig die Shell verwenden.
Gibt es eine Möglichkeit, Vim in vielen Windows (oder Registerkarten) zu teilen und in einem von ihnen eine Shell zu öffnen?
Ich kann eine Shell mit dem Befehl: shell in Vim öffnen, jedoch keine Datei bearbeiten und gleichzeitig die Shell verwenden.
Gibt es eine Möglichkeit, Vim in vielen Windows (oder Registerkarten) zu teilen und in einem von ihnen eine Shell zu öffnen?
Antworten:
Neovim und Vim 8.2unterstützen dies nativ über den :ter[minal]Befehl.
terminal-windowEinzelheiten finden Sie in den Dokumenten.
vsplit term://bashSie , wenn Sie Neovim verwenden.
terminalteilt der Befehl das Fenster und gibt eine Befehlsshell mit einer speziellen Farbe in der Fensterstatusleiste aus. Glatt.
Nun, es hängt von Ihrem Betriebssystem ab - eigentlich habe ich es nicht unter MS Windows getestet - aber Conque ist eines der besten Plugins da draußen.
Eigentlich kann es besser sein, funktioniert aber.
:vspoder :sp- teilt vim in zwei Instanzen auf, aber Sie können nicht verwenden: Shell in nur einer von ihnen.
Warum nicht eine andere Registerkarte des Terminals anzeigen, nicht eine andere Registerkarte von vim? Wenn Ihnen die Idee gefällt, können Sie sie ausprobieren: Ctrl-shift-t.und mit Ctrl - pageupund zwischen ihnen wechselnCtrl - pagedown
Wenn Sie nur ein paar Shell-Befehle benötigen, können Sie mit jedem Shell-Befehl in vim einen beliebigen Befehl ausführen !
Zum Beispiel :!./a.out.
vim:!./%
CtrlWas auch immer Ihre Antwort vermutlich Gnome-Terminal oder einen ähnlichen Emulator voraussetzt.
Sie können tmuxoder screen(zweitens können nur horizontale Teilungen ohne Patch durchgeführt werden) verwenden, um Ihr Terminal zu teilen. Aber ich weiß nicht, wie ich eine Instanz von Vim in beiden Fenstern haben soll.
Wenn Sie es noch nicht herausgefunden haben, können Sie das erstaunliche Bildschirm-Plugin verwenden .
Conque ist auch außergewöhnlich, aber ich finde den Bildschirm viel praktischer (er "verschmutzt" beispielsweise Ihren Puffer nicht und Sie können einfach die Befehle senden, die Sie wirklich wollen, nachdem Sie sie in Ihrem Puffer bearbeitet haben).
Ich denke, dies ist eine ziemlich alte Frage, aber jetzt im Jahr 2017. Wir haben Neovim, eine Gabel von Vim, die Terminal-Unterstützung hinzufügt.
Das Aufrufen :termwürde also ein Terminalfenster öffnen. Das Schöne an dieser Lösung im Gegensatz zur Verwendung von tmux (einem Terminal-Multiplexer) ist, dass Sie dieselben Fensterbindungen wie bei Ihrem vimSetup haben. neovim ist kompatibel mit vim, so dass Sie im Grunde Ihre kopieren und einfügen können .vimrcund es wird einfach funktionieren.
Weitere Vorteile sind, dass Sie auf dem geöffneten Terminal in den normalen Modus wechseln und einfach kopieren und bearbeiten können. Es ist auch ziemlich nützlich für Git-Commits, denke ich, da alles in Ihrem Puffer in der automatischen Vervollständigung verwendet werden kann.
Ich werde diese Antwort aktualisieren, da vim auch plant, die Terminalunterstützung freizugeben, 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 überlegeneres Setup ist als die Verwendung von tmux.
Nicht unbedingt das, wonach Sie fragen, aber vielleicht interessiert Sie mein Plugin vim-notebook , mit dem der Benutzer einen Hintergrundprozess am Leben erhalten und einen Teil des aktuellen Dokuments auswerten (und die Ausgabe in das Dokument schreiben) kann. Es ist für Dokumente im Notebook-Stil vorgesehen, die zu bewertende Codeteile enthalten.
Möglicherweise möchten Sie ein "Bildschirm" -Programm öffnen, den Bildschirm teilen, die Shell auf einem und die Vim auf einem anderen öffnen. Funktioniert bei mir.
Ich benutze derzeit tmux.
Installation: sudo apt-get install tmux Führen Sie es aus: tmux
Strg + b gefolgt von Strg +%: Es teilt Ihr Terminalfenster in zwei vertikale Hälften.
Strg + "Pfeil links | Pfeil rechts": wechselt zwischen den Klemmen.