Мне не очень понравилось в принятом решении, что оно зависит от графической среды для буфера обмена, так как это не работает, когда vim
не может получить доступ к буферу обмена, что почти всегда имеет место для ssh
соединений. Поэтому я нашел другое решение:
Вместо использования внешнего буфера обмена vim
может передавать текст непосредственно в буфер вставки tmux
, передав его в
tmux load-buffer -
После этого Вы можете вставить содержимое буфера с помощью prefix + ]
в активную область tmux
.
Существуют различные способы передачи текста из vim
в tmux
:
# to write the current line into the tmux buffer:
:.w !tmux load-buffer -
# to write all *lines* within the visual selection into the tmux buffer:
:'<,'>w !tmux load-buffer -
# to pipe the content of a register (e.g. from a previous selection) into the buffer:
# @" being the unnamed register, @0 - @9 the numbered registers, and so on
:call system('tmux load-buffer -', @")
Используя tmux paste-buffer
, вы можете одновременно запустить вставку на нужную панель:
# assuming the python pane is at :0.0
:call system('tmux load-buffer -; tmux paste-buffer -t :0.0', @")
Теперь вы также можете легко сопоставить последнюю строку с клавишей, чтобы отправить визуально выбранный текст на python
панель.