首页 > 解决方案 > 如何在 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 剪贴板的最佳方法是什么?

标签: vimclipboardwindows-subsystem-for-linux

解决方案


答案是,做一个 vim 视觉选择然后执行命令:

:'<,'>w !clip.exe

这会将当前选择通过管道传递给 shell 命令clip.exe,该命令利用 WSL 执行 Windows 可执行文件的能力(即使使用管道)。传送到clip.exeWindows剪贴板的文本。

此外,此命令将整个文件保存到剪贴板(不是必需的):

 :w !clip.exe

推荐阅读