Ich versuche, ipython und vim über eine einzige tmux-Sitzung mit dem beliebten vim-Plugin "vim-slime" zu integrieren. Das Problem ist, dass ich es zwar zum Laufen bringen kann, vorausgesetzt, dass vim in einem separaten tmux-Fenster geöffnet ist (oder gvim verwendet), aber wenn ich versuche, Codezeilen an einen anderen Bereich im selben Fenster zu senden, werde ich bestenfalls fertig Senden an die vim-Sitzung, die ich gerade verwende.
Was ich in meinem Setup wirklich möchte, ist vim auf der rechten Seite des Bildschirms, ipython oben links und eine reguläre Befehlszeile unten links. Ich möchte nicht wirklich mehrere Sitzungen und Fenster öffnen und verwalten.
Gibt es eine einfache Möglichkeit, die ich aufgrund meiner relativen Unerfahrenheit einfach nicht kenne?
Sie müssen den Zielbereich mit
<c-c>v
oder ändern:SlimeConfig
. Die Standardeinstellung ist:
"aktuelles Fenster, aktueller Bereich". Siehe:help slime-tmux
.Stattdessen, gehen Sie zum tmux Bereich Sie den Text (der mit ipython ausgeführt wird ), und von der Shell Laufe senden möchten
echo $TMUX_PANE
odertmux run "echo #{pane_id}"
auf die richtige Scheibe ID zu finden .quelle
<C-c>v
Ruft nur den VISUAL-Modus auf. Außerdem glaube ich, dass $ TMUX_PANE nicht die gesuchten Informationen sind. Durch Drücken von<C-b>x
(Befehl zum Beenden eines Fensters) wird eine Bestätigungsanforderung angezeigt, die die Nr. Des Fensters enthält. Diese Nummer unterscheidet sich von $ TMUX_PANE und scheint die richtige Information zu sein, um die Anforderung des OP zu erfüllenCtrl-b %
vertikal teilen.Ctrl-b [left arrow]
zum linken Bereich bewegenCtrl-b "
linke Scheibe horizontal teilen. Sie haben jetzt 3 Befehlszeilen.Ctrl-b [up arrow]
um zum oberen linken Bereich zu gelangen, gefolgt vonipython
.Ctrl-b [right arrow]
zum rechten Bereich bewegen.Ctrl-C Ctrl-C
, akzeptieren Sie den Socket-Namen alsdefault
und geben Sie ein:0.0
, um den IPython-Bereich auszuwählen.default
und0:0
sind der Socket-Name bzw. die Fenster-ID.quelle