Làm cách nào để sử dụng vim-slime từ trong một phiên tmux?


9

Tôi đang cố gắng tích hợp ipython và vim thông qua một phiên tmux duy nhất bằng cách sử dụng plugin vim phổ biến "vim-slime." Vấn đề là trong khi tôi có thể làm cho nó hoạt động tốt với điều kiện vim được mở trong một cửa sổ tmux riêng (hoặc sử dụng gvim), nếu tôi cố gửi các dòng mã đến một khung khác trong cùng một cửa sổ, thì tốt nhất tôi sẽ kết thúc gửi nó đến phiên vim tôi hiện đang sử dụng.

Thực sự những gì tôi muốn trong thiết lập của tôi là vim ở phía bên phải màn hình, ipython ở phía trên bên trái và một dòng lệnh thông thường ở phía dưới bên trái. Tôi thực sự không muốn mở và quản lý nhiều phiên và cửa sổ.

Có một cách đơn giản để làm điều này mà tôi không biết vì thiếu kinh nghiệm tương đối của tôi?

Câu trả lời:


6

Được rồi, vì vậy tôi đã có cùng một vấn đề, đó là những gì đưa tôi đến câu hỏi này. Tôi có một phiên phân chia, mã vim ở bên trái và một dấu nhắc chương trình ở bên phải.

Vấn đề của tôi là, tôi nghĩ tên phiên là tên ổ cắm, nhưng chúng là hai thứ khác nhau. Tôi đã đặt tên phiên là '0', cho cửa sổ thứ 0, nhưng trên thực tế, SOCKET được đặt tên là 'mặc định' mặc dù tên phiên tôi đã chỉ định.

Để có danh sách các ổ cắm tmux chạy: lsof -U | grep "^tmux"
Tôi thấy rằng từ câu trả lời này: /programming/11333291/is-it-possible-to-find-tmux-sockets-c Hiệnly-in-use

Ở trên là hữu ích để xem tên thực của các ổ cắm.

Đó là những gì bạn đặt trong dấu nhắc đầu tiên. Tôi đã đặt '0', đó là tên phiên của tôi, nhưng nó không hoạt động. 'mặc định' là những gì cần thiết ở đó mặc dù thực tế tôi đã đặt tên cho phiên này.

Sau đó, tại dấu nhắc thứ hai, tôi đã nhập (cửa sổ index-0, khung index-1)
:: 0.1

Voila! Cuối cùng! Nó đã hoạt động. Rực rỡ, bây giờ chỉnh sửa bên cạnh!


1
Điều này đã giải quyết nó!
Ram

1

Bạn cần thay đổi khung mục tiêu bằng <c-c>vhoặc :SlimeConfig. Mặc định là :"cửa sổ hiện tại, khung hiện tại." Xem :help slime-tmux.

Thay vào đó, điều hướng đến khung Tmux mà bạn muốn gửi văn bản tới (văn bản có iPython đang chạy) và từ shell chạy echo $TMUX_PANEhoặc tmux run "echo #{pane_id}"để tìm ID khung chính xác .


Không làm việc cho tôi. <C-c>v chỉ cần đưa lên chế độ VISUAL. Thêm vào đó, tôi tin rằng $ TMUX_Pane không phải là thông tin cần tìm. Nhấn <C-b>x(lệnh để giết một khung) sẽ đưa ra yêu cầu xác nhận bao gồm n ° của khung. Con số này khác với $ TMUX_Pane dường như là thông tin chính xác để trả lời yêu cầu của OP
Titou

0
  1. Ra mắt tmux.
  2. Ctrl-b % để phân chia theo chiều dọc.
  3. Ctrl-b [left arrow] để di chuyển đến khung bên trái
  4. Ctrl-b "để chia ngăn tay trái theo chiều ngang. Bây giờ bạn sẽ có 3 dòng lệnh.
  5. Ctrl-b [up arrow]để di chuyển đến khung phía trên bên trái, theo sau ipython.
  6. Ctrl-b [right arrow] để di chuyển đến khung bên tay phải.
  7. Khởi chạy vim trên mã Python của bạn.
  8. Gửi một dòng bằng cách sử dụng Ctrl-C Ctrl-C, chấp nhận tên ổ cắm là defaultvà nhập :0.0để chọn ngăn IPython.

default0:0là tên ổ cắm và id khung tương ứng.


1
Điều này không giải quyết vấn đề được mô tả trong OP của tôi.
Ram

@Ram Có, nó đã làm: làm theo các bước mà Simon đã đưa ra, tôi có được chính xác cấu hình mà OP yêu cầu.
Titou
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.