単一のtmuxセッションでvim-slimeを使用する方法は?

単一のtmuxセッションでvim-slimeを使用する方法は?

私は人気のあるvimプラグイン「vim-slime」を使って単一のtmuxセッションを介してipythonとvimを統合しようとしています。問題は、別のtmuxウィンドウでvimを開くか、gvimを使用している限り正常に動作させることができますが、同じウィンドウの他のウィンドウにコード行を送信しようとするとできないことです。私が現在使用しているvimセッションに送った以上のものを入手してください。

私が本当に欲しい設定は、画面の右側のvim、左上のipython、左下の一般的なコマンドラインです。複数のセッションやウィンドウを開いて管理したくありません。

私は比較的経験が不足していることを知りませんが、これを行う簡単な方法はありますか?

答え1

ああ、私も同じ問題を抱えていて、このような質問をするようになりました。左側にはvimコードがあり、右側にはソリューションプロンプトを持つ分割セッションがあります。

私の問題は、セッション名がソケット名だと思いましたが、2つが異なることです。 0番目のwindowのセッション名を「0」と指定しましたが、実際には私が指定したセッション名にもかかわらず、SOCKETの名前は「Default」と指定されました。

実行中のtmuxソケットのリストを取得するには、 lsof -U | grep "^tmux"
次の回答でこれを見つけました。
https://stackoverflow.com/questions/11333291/is-it-possible-to-find-tmux-sockets-currently-in-use

上記はソケットの実際の名前を解決するのに役立ちます。

これが最初のプロンプトに入力する内容です。セッション名「0」と入力しましたが、機能しません。セッション名を指定しましたが、ここでは「Default」が必要です。

次に、2番目のプロンプトで(index-0ウィンドウ、index-1ウィンドウ)と入力します。 :0.1

望むより!ついに!動作中です。いいですね。これで並べて編集できます!

答え2

<c-c>vターゲットウィンドウを使用または変更する必要があります:SlimeConfig。デフォルトは:「現在のウィンドウ、現在のウィンドウ」です。望むより:help slime-tmux

代わりに、テキストを送信したいTmuxウィンドウ(iPythonを実行しているウィンドウ)に移動して、シェルで実行するかecho $TMUX_PANEtmux run "echo #{pane_id}"正しいウィンドウIDを探す

答え3

  1. ティーマックスを始めましょう。
  2. Ctrl-b %垂直に分割します。
  3. Ctrl-b [left arrow]左ペインに移動
  4. Ctrl-b "左ペインを水平に分割します。これで3つのコマンドラインが作成されます。
  5. Ctrl-b [up arrow]左上のウィンドウに移動してキーを押しますipython
  6. Ctrl-b [right arrow]右側のウィンドウに移動します。
  7. Pythonコードでvimを起動します。
  8. Send a lineを使用しCtrl-C Ctrl-C、ソケット名を受け入れdefault、Enterを押して:0.0IPythonウィンドウを選択します。

default0:0それぞれソケット名とウィンドウIDです。

関連情報