解决vim选中文字不能复制的问题

本文介绍了如何解决在Mac OS的iTerm2中使用Vim时,用鼠标选中文字但无法复制的问题。问题根源在于'iTerm2'的'Enable mouse reporting'设置,取消该设置后问题得到解决。同时提到了mouse reporting的功能,以及在不开启此功能的情况下,如何通过映射键来实现滚动操作。

转载自本人独立博客:https://liushiming.cn/2020/01/18/vim-copy-issue-in-iterm2/

概述

最近发现在iterm2中打开vim,用鼠标选中文字,并用command + c复制选中的文字,但粘贴出来是空的。查了一圈终于在iterm2的官方gitlab issue库里发现了解决办法。将Enable mouse reporting这个设置去掉即可。

版本信息

操作系统
Mac os 10.15.2

iterm2
iterm2 3.3.6
iterm2 3.3.7

vim
Vi IMproved 8.1 (2018 May 18, compiled Dec 26 2018 02:33:06)

重现步骤

  1. iterm2中使用cat命令打印文件,然后用鼠标选中command + c可以正常复制。
  2. 但是用vim打开文件,选中文字用command + c复制,却不能复制。
  3. 并且当鼠标点击vim中的文字后,vim会自动变为visual模式。

解决方案

iterm2 > Preferences > Profiles > Terminal > Enable mouse reporting 去掉勾选

mouse reporting

mouse reporting的作用是在vim编辑时识别鼠标,可以支持鼠标滚轮查看文件内容(需要在.vimrc中加入设置支持鼠标set mouse=a)。关闭了mouse reporting后就不支持鼠标滚轮了。

那要使用鼠标滚轮怎么办?

可在iterm2 > preferences > advance > 搜索mouse > scroll whell down 那里写\j > scroll whell up那里写\k,作用就是发送j/k键到vim实现滚动效果。

更多信息

Mac自带的terminal也会有这个问题,在View > Allow Mouse Reporting 去掉勾选即可

在 Windows 和 Linux 系统之间无法复制粘贴文字问题,通常是由于虚拟机环境中的工具未正确安装或配置导致的。以下是解决问题的几种方法: 1. **安装 VMware Tools**:在 CentOS 或其他基于 Linux 的系统中安装 `vmware-tools` 是实现与 Windows 无缝复制粘贴的关键步骤。安装完成后,确保重启虚拟机以使更改生效。 2. **启用剪贴板共享功能**:在 VMware 设置中,进入虚拟机设置 -> 选项 -> 客户机隔离,确保启用了“启用拖放”和“启用剪贴板共享”。这将允许两个系统之间的文本交换。 3. **检查服务是否运行**:确认 `vmtoolsd` 服务正在运行。可以使用命令 `systemctl status vmtoolsd` 来查看其状态。如果服务没有运行,可以通过命令 `systemctl start vmtoolsd` 启动它。 4. **更新内核模块**:有时需要重新编译或更新 VMware 提供的内核模块来支持最新的 Linux 内核版本。使用 `vmware-modconfig --console --install-all` 命令可以帮助完成这一过程。 5. **使用替代方案**:如果上述方法不奏效,可以考虑使用第三方工具如 `clipit`, `parcellite` 或者 `xclip` 来手动同步剪贴板内容[^1]。 对于 VIM 用户来说,若想从系统剪贴板粘贴内容到 VIM 编辑器中,应该使用 `"+p"` 或 `"*p"` 而不是普通的 `"p"` 命令。这样可以直接访问系统剪贴板的内容。同样地,在 VIM复制的内容也可以通过 `"+y` 或 `"*y` 操作符发送至系统剪贴板[^2]。 这些解决方案不仅适用于标准的文本复制粘贴需求,也能够帮助处理更复杂的文档格式迁移问题,例如在网页编辑器(如 KindEditor 或 CKEditor)中导入 Microsoft Office 文档时遇到的挑战[^3][^4][^5]。 ```bash # 示例代码 - 检查vmtoolsd服务状态 systemctl status vmtoolsd # 如果服务未运行,则启动服务 systemctl start vmtoolsd # 更新vmware内核模块 vmware-modconfig --console --install-all ``` ```vim " 在VIM中使用系统剪贴板粘贴 "+p " 将选中的文本复制到系统剪贴板 "+y ``` 通过以上步骤,大多数情况下都能够解决 Windows 和 Linux 系统间复制粘贴文字失败的问题。如果问题依旧存在,请进一步排查网络连接、驱动程序兼容性以及操作系统更新情况。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值