vim - 如何在 WSL 中从 Vim 复制/粘贴
问题描述
我正在尝试使用 Vim 来查找和复制/粘贴一些我需要分析和记录的代码。我在 Windows WSL 环境中使用 Debian。这就是让事情变得棘手的原因。
常规的“yank and put to global register”命令"+y
和"*y
命令不起作用。
另一方面,我只使用鼠标刮终端文本的蛮力方法也行不通。奇怪的是,WSL 终端有鼠标支持,而且 Vim 可以跟踪它的移动,在可视模式下选择等。所以 Vim 拦截了选择命令,然后 ctrl-shift-c 没有选择任何内容复制到 Windows 剪贴板中。
我知道 WSL 终端支持复制和粘贴,如果我cat
将文件复制到屏幕上,然后使用 ctrl-shift-c 和 ctrl-v 复制和粘贴,我可以成功地做到这一点。但后来我失去了导航的便利性。
将文本从 WSL 终端内的 Vim 复制到 Windows 剪贴板的最佳方法是什么?
解决方案
答案是,做一个 vim 视觉选择然后执行命令:
:'<,'>w !clip.exe
这会将当前选择通过管道传递给 shell 命令clip.exe
,该命令利用 WSL 执行 Windows 可执行文件的能力(即使使用管道)。传送到clip.exe
Windows剪贴板的文本。
此外,此命令将整个文件保存到剪贴板(不是必需的):
:w !clip.exe
推荐阅读
- primefaces - p:chart 中一个系列条的不同颜色
- java - Java:一般返回由参数指定的类型化集合
- reactjs - 长时间运行反应测试显示错误意外令牌错误点
- python - Azure Databricks Python 根据内容现有列添加派生列
- amazon-web-services - 复制 parquet 文件,然后使用 Athena 查询它们
- php - Laravel 项目从 github 克隆到 localhost 服务器后没有加载一些支持包
- nginx - 使用 docker-compose 运行时如何在 nginx 配置中引用 web?
- swiftui - 在LongPressGesture 上更改视图
- angular - 如何调用角材料API方法?
- vba - 在 SlideShowMode 中修改 SlideMaster:文本框不刷新