如何在运行vim实例的不同tmux窗格之间复制和粘贴

例如:复制一个tmux窗格(通过vim),然后切换到另一个窗格(运行另一个vim实例)并使用vim paste命令进行粘贴。 我知道这可以通过tmux(使用前缀+)来完成),但如果我可以使用vim绑定进行复制和粘贴,将会非常方便,因为我只是在运行vim的不同窗格之间切换。

有任何想法吗?


对不起,我试图说服你使用vim的内置功能。


为了方便copy/paste ,您可以在另一个Tabpages中打开文件:

:tabe /path/to/another/file

使用gt或gT切换Tabpages。


或者分割窗口来编辑另一个文件:

:sp /path/to/another/file

使用Ctrl-ww切换Windows。
要垂直分割窗口,请使用:vsp file


更新:

这是我的.tmux.conf文件:

# 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

我只在需要复制终端输出时使用它们。


我已经使用这个方便的绑定了几年:)

" copy to buffer
vmap <C-c> :w! ~/.vimbuffer<CR>
nmap <C-c> :.w! ~/.vimbuffer<CR>
" paste from buffer
map <C-p> :r ~/.vimbuffer<CR>

虽然我同意只使用一个vim实例会更好,但您可以单独使用tmux来实现。 它有一个内置的复制模式。 我的tmux.conf设置如下:

  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

因此,您可以使用prefix-<Cy>激活复制模式, /search term作为示例以便到达您想要的位置, v以可视方式选择, y将其放入tmux中。 然后转到其他vim会话并进入插入模式。 使用prefix-p粘贴tmux粘贴缓冲区中的内容。 还有一些方法可以将tmux的粘贴缓冲区复制到系统剪贴板。

链接地址: http://www.djcxy.com/p/86129.html

上一篇: How to copy and paste between different tmux panes running vim instances

下一篇: Tmux copy mode: how to create your own command?