저는 인기 있는 vim 플러그인 "vim-slime"을 사용하여 단일 tmux 세션을 통해 ipython과 vim을 통합하려고 합니다. 문제는 별도의 tmux 창에서 vim을 열거나 gvim을 사용하는 한 제대로 작동하도록 할 수 있지만 동일한 창의 다른 창에 코드 줄을 보내려고 하면 할 수 없다는 것입니다. 내가 현재 사용하고 있는 vim 세션으로 보낸 것 이상을 얻으세요.
제가 정말 원하는 설정은 화면 오른쪽의 vim, 왼쪽 상단의 ipython, 왼쪽 하단의 일반 명령줄입니다. 여러 세션과 창을 열고 관리하고 싶지 않습니다.
제가 상대적으로 경험이 부족해서 모르는데 이 작업을 수행하는 쉬운 방법이 있습니까?
답변1
아, 저도 똑같은 문제를 겪고 있어서 이런 질문을 하게 되었습니다. 왼쪽에는 vim 코드가 있고 오른쪽에는 솔루션 프롬프트가 있는 분할 세션이 있습니다.
내 문제는 세션 이름이 소켓 이름이라고 생각했지만 두 가지가 다르다는 것입니다. 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"가 필요합니다.
그런 다음 두 번째 프롬프트에서 (index-0 창, index-1 창)을 입력합니다.
:0.1
바라보다! 마침내! 작동 중입니다. 좋습니다. 이제 나란히 편집할 수 있습니다!
답변2
<c-c>v
대상 창을 사용하거나 변경해야 합니다 :SlimeConfig
. 기본값은 :
"현재 창, 현재 창"입니다. 바라보다 :help slime-tmux
.
대신 텍스트를 보내려는 Tmux 창(iPython을 실행하는 창)으로 이동한 다음 셸에서 실행 echo $TMUX_PANE
하거나tmux run "echo #{pane_id}"
올바른 창 ID 찾기.
답변3
- 티먹스를 시작하세요.
Ctrl-b %
수직으로 분할합니다.Ctrl-b [left arrow]
왼쪽 창으로 이동Ctrl-b "
왼쪽 창을 가로로 분할합니다. 이제 3개의 명령줄이 생깁니다.Ctrl-b [up arrow]
왼쪽 상단 창으로 이동하여 키를 누릅니다ipython
.Ctrl-b [right arrow]
오른쪽 창으로 이동합니다.- Python 코드에서 vim을 시작하세요.
- Send a line을 사용하고
Ctrl-C Ctrl-C
, 소켓 이름을 수락하고default
, Enter를 눌러:0.0
IPython 창을 선택하세요.
default
은 0:0
각각 소켓 이름과 창 ID입니다.