当前位置: 首页 > news >正文

Termius ssh连接服务器 vim打开的文件无法复制问题

你的问题是:
• 在 Termius (macOS) SSH 连接到 VMware Ubuntu,使用 vim 打开 .cpp 文件时,可以复制文本;
• 但在 Windows 10 上 SSH 到 VMware 的 Red Hat 6.4 时,复制操作无效。

🎯 初步分析

复制问题通常与以下几个因素有关:

分类 可能原因
终端设置 vim 是否在 兼容模式、鼠标模式、屏幕缓冲区切换模式
SSH 工具 Windows 使用的 SSH 客户端(比如 cmd/PowerShell 的 ssh.exe、PuTTY、Termius、Mobaxterm 等)行为不同
操作系统 Red Hat 6.4 很旧,vim 版本和终端设置也可能落后或缺失支持
vim 配置 是否启用了 mouse=a,这会拦截鼠标选择,导致无法复制

✅ 快速排查和解决步骤

🧪 1. 检查 vim 是否启用了鼠标模式

在 Red Hat 上 SSH 后,打开 .cpp 文件时尝试以下操作:

输入命令:

:set mouse?

输出是 mouse=a 表示启用了鼠标模式,鼠标选择会被 Vim 接管,导致你不能复制。

✅ 临时关闭鼠标模式:

:set mouse=

现在你应该能用鼠标选中并复制了。

或永久关闭鼠标模式(编辑你的 .vimrc):

echo “set mouse=” >> ~/.vimrc

🧪 2. 检查终端是否支持复制(Windows)

如果你用的是 Windows Terminal + ssh:
• 鼠标选择 + Ctrl+C 复制应该正常;
• 但如果 Vim 进入 全屏模式(alternate screen buffer),你复制的是“空”;
• 临时退出 Vim,复制内容,再回到 Vim;
• 或者用 set mouse= 禁用鼠标行为(上面已经说了);
• 或者在 .vimrc 加上:

set t_ti= t_te= " 禁用屏幕缓冲区切换

如果你用的是 PuTTY:
• 默认是右键复制、Shift+Insert 粘贴;
• 如果 Vim 启用了鼠标模式,也无法复制;

🛠 建议配置 .vimrc (适配远程开发和复制)

set mouse= " 禁用鼠标模式,方便复制
set number " 显示行号
syntax on " 开启语法高亮
set clipboard=unnamedplus " 如果有支持系统剪贴板

⚠️ 注意:clipboard=unnamedplus 在老旧系统(如 Red Hat 6.4)可能不支持。

✅ 最终建议
• macOS + Termius 正常 是因为 Termius 支持 macOS 原生剪贴板,Vim 没启用鼠标模式;
• Win10 + Red Hat 6.4 异常 是因为老系统 + 鼠标模式开启;
• 推荐禁用 vim 的鼠标模式或终端缓冲区切换,复制会恢复正常;
• 如果频繁开发,建议升级 VM 里的 Linux 系统或使用 VSCode Remote SSH 开发体验更好。

需要我帮你写一个 .vimrc 文件适配你两个环境的复制粘贴与开发?

下面是一个兼顾 复制粘贴流畅性 和 C++ 开发体验 的通用 .vimrc 配置,适配你的两种情况:
• ✅ macOS + Termius + Ubuntu(已正常复制)
• ✅ Windows 10 + SSH + Red Hat 6.4(解决复制问题)

✅ 推荐 .vimrc 配置

" — 基础设置 —
set nocompatible " 使用现代 Vim 行为
syntax on " 启用语法高亮
set number " 显示行号
set relativenumber " 相对行号(方便上下跳转)

" — 缩进与格式 —
set tabstop=4 " tab 显示为 4 空格
set shiftwidth=4 " >> << 的缩进为 4 空格
set expandtab " 用空格代替 tab
set autoindent " 自动缩进
set smartindent " 更智能的缩进方式

" — 鼠标/复制相关 —
set mouse= " ❗禁用鼠标模式,恢复鼠标选中复制
set ttymouse=xterm2 " 鼠标兼容模式(Windows 下更稳)
set t_ti= t_te= " ❗禁用 alternate screen,退出 Vim 时保留选中内容

" — 搜索相关 —
set ignorecase " 搜索忽略大小写
set smartcase " 有大写时仍区分大小写
set incsearch " 实时搜索
set hlsearch " 高亮搜索结果

" — 界面优化 —
set showcmd " 显示命令
set ruler " 显示光标位置
set cursorline " 高亮当前行
set encoding=utf-8 " 编码设置

" — 文件操作 —
set backup " 开启备份
set writebackup " 写入时备份
set undofile " 保留撤销历史

" — 快捷键示例(可选) —
" map :w:!g++ % -o %:r && ./%:r
" 上面这行绑定 F5 自动编译并运行 C++ 文件(如需)

📍 放置方式
1. 登录目标服务器(Ubuntu 和 Red Hat 都做):
2. 将上面内容保存到:

~/.vimrc

或你也可以直接运行(粘贴时别漏了引号):

cat < ~/.vimrc
<上面的配置内容>
EOF

✅ 效果说明

功能 效果
鼠标复制 不再被 Vim 接管,能正常选中复制
退出保留屏幕 不切换终端缓冲区,复制历史内容更稳定
缩进 + 高亮 + 行号 更适合写 C++
快捷键可自定义编译运行 可选绑定 F5 编译(g++)

如果你也使用 neovim(nvim),可以让我再帮你写一个 init.vim 或 Lua 版本。

是否要附带远程 C++ 编译运行快捷键或 LSP 支持配置?

相关文章:

  • 【Java ee初阶】IP协议
  • 进程和线程
  • GTC2025——英伟达布局推理领域加速
  • 什么是Vim
  • 神经生物学+图论双buff,揭示大脑语言系统的拓扑结构
  • 探秘高可用负载均衡集群:企业网络架构的稳固基石
  • EnumUtils:你的枚举“变形金刚“——让枚举操作不再手工作业
  • ARM-CortexM固件升级相关问题研究
  • 模型上下文协议(MCP):AI的“万能插座”
  • Matplotlib 完全指南:从入门到精通
  • 负载均衡 ELB 在 zkmall开源商城高流量场景下的算法优化
  • 高并发内存池(三):TLS无锁访问以及Central Cache结构设计
  • [ARM][汇编] 01.基础概念
  • CentOS 和 RHEL
  • Java学习手册:服务网关与路由
  • 电子电器架构 --- 借力第五代架构,驱动汽车产业创新引擎
  • 关于mac配置hdc(鸿蒙)
  • 【25软考网工】第六章(4)VPN虚拟专用网 L2TP、PPTP、PPP认证方式;IPSec、GRE
  • MacOS 上构建 gem5
  • 算法模型部署后_python脚本API测试指南-记录3
  • 人民日报访巴西总统卢拉:“巴中关系正处于历史最好时期”
  • 加强战略矿产出口全链条管控工作部署会召开
  • 李公明 | 一周画记:印巴交火会否升级为第四次印巴战争?
  • 网红街区如厕难,如何多管齐下补缺口?
  • 习近平会见古共中央第一书记、古巴国家主席迪亚斯-卡内尔
  • 央行:货币与物价的关系受多重因素影响,提振物价的关键在于扩大有效需求