You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无剪贴板支持的Vim跨终端复制方案咨询

无剪贴板支持的Vim跨终端复制方案咨询

哥们我太懂你这种执念了——就爱用终端里的vim.basic,不想碰gVim,但跨终端复制粘贴确实卡壳,毕竟两个独立的Vim进程寄存器完全不互通,读不到内容太正常了。给你几个简单好上手的方案,不用搞复杂配置:

  • 临时文件中转法(最稳妥无依赖)
    这个完全不用装额外工具,靠系统文件就能搞定:

    1. 在第一个终端的Vim里,选中你要复制的内容(用可视模式v/V/ctrl+v选择)
    2. 输入命令把选中内容存到临时文件::'<,'>w! ~/vim_temp_copy.txt
      (如果是复制整个文件内容,直接输:w! ~/vim_temp_copy.txt就行)
    3. 切换到第二个终端的Vim,输入:r ~/vim_temp_copy.txt,内容就会插入到光标位置
    4. 用完可以删掉临时文件:rm ~/vim_temp_copy.txt
  • 调用系统剪贴板工具(需要装轻量工具)
    虽然你的Vim本身没剪贴板支持,但可以让它调用系统级的剪贴板工具来中转:

    • 如果你用的是Linux/Ubuntu,先装xclip:sudo apt install xclip
      1. 第一个终端Vim选中内容后,输::'<,'>w !xclip -selection clipboard
      2. 第二个终端Vim里输::r !xclip -selection clipboard -o
    • 如果你用macOS,直接用系统自带的pbcopy/pbpaste:
      1. 第一个终端Vim选中内容后,输::'<,'>w !pbcopy
      2. 第二个终端Vim里输::r !pbpaste
  • Vim客户端-服务端模式(适合经常跨终端操作)
    这个能让两个Vim进程互通寄存器,稍微有点技巧但用熟了很方便:

    1. 先在第一个终端启动Vim时指定服务名:vim --servername MYVIM fileA
    2. 在这个Vim里选中内容,用"ay把内容存到a寄存器(你也可以用其他任意寄存器)
    3. 切换到第二个终端的Vim,输入命令把第一个Vim的a寄存器内容读过来:
      :let @a = system('vim --servername MYVIM --remote-expr ''@a''')
      
    4. 最后输入"ap就能把内容粘贴到当前光标位置了

这些方案都不用你换掉vim.basic,挑个顺手的用就行~

备注:内容来源于stack exchange,提问作者mazda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:37:37