How to copy and paste between different tmux panes running vim instances
Example: copy in one tmux pane (via vim), then switch to another pane (running another vim instance) and paste using the vim paste command. I know this can be done via tmux (using prefix+]) but it would be really handy if I can copy and paste using vim bindings since i'm just switching between different panes running vim.
Any ideas?
Sorry, I'm trying to convince you to use vim built-in features.
To make the copy/paste
easy, you can open files in another Tabpages:
:tabe /path/to/another/file
Use gt or gT to switch Tabpages.
Or split the window to edit another file:
:sp /path/to/another/file
Use Ctrl-ww to switch Windows.
To split the window vertically, please use :vsp file
Update:
This is my .tmux.conf
file:
# vim
setw -g mode-keys vi
bind [ copy-mode
bind -t vi-copy v begin-selection
bind -t vi-copy y copy-selection
bind -t vi-copy V rectangle-toggle
bind ] paste-buffer
# buffer
bind Space choose-buffer
I only use them when I need to copy terminal output.
我已经使用这个方便的绑定了几年:)
" copy to buffer
vmap <C-c> :w! ~/.vimbuffer<CR>
nmap <C-c> :.w! ~/.vimbuffer<CR>
" paste from buffer
map <C-p> :r ~/.vimbuffer<CR>
Although I agree that it's better to just use one vim instance, you can do this with tmux alone. It has a built in copy-mode. My tmux.conf is set up like:
setw -g mode-keys vi
unbind [
unbind p
bind C-y copy-mode
bind p paste-buffer
bind -t vi-copy v begin-selection
bind -t vi-copy y copy-selection
bind -t vi-copy Escape cancel
So you can use prefix-<Cy>
to activate copy mode, /search term
as an example to go where you want, v
to visually select, y
to yank into tmux. Then go to other vim session and get into insert mode. Use prefix-p
to paste what's in the tmux paste buffer. There are also ways to copy tmux's paste buffer to your system clipboard.
上一篇: 如何发送命令到tmux中的所有窗格?