在neovim中运行win32yank时出现错误,参数cmd的值无效: win32yank.exe

我遇到了一个问题,就是我把win32yank放在我的nvim配置中来共享剪切板,不好的是它给我返回以下错误:

Error detected while processing function provider#clipboard#Call[6]..3[15]..<SNR>25_try_cmd:
line    1:
E475: 参数cmd的值无效: 'win32yank.exe'不能执行

也许错误可能是在lua中,或者是在Ubuntu中,如果您能告诉我一种从终端测试win32yank并知道它不是问题的方法,那将对我有很大的帮助

您也可以在下面的截图中查看它

enter image description here

当我尝试在neovim中复制一些东西时会出现这种情况

这是我的neovim配置,在这种情况下我把它传递给了lua,但实际上它几乎相同:

local o = vim.o
local wo = vim.wo

wo.nu = true
wo.rnu = true
o.clipboard = "unnamedplus"

o.expandtab = true
o.tabstop = 4
o.shiftwidth = 4

vim.g.clipboard = {
    name = "win32yank-wsl",
    copy = {
         ["+"] = "win32yank.exe -i --crlf",
         ["*"] = "win32yank.exe -i --crlf"
    },
    paste = {
        ["+"] = "win32yank.exe -o --lf",
        ["*"] = "win32yank.exe -o --lf"
    },
    cache_enabled = false
}

enter image description here还有要澄清的是,下载win32yank,就像我之前安装上一个版本的neovim一样,并使用以下命令进行配置:

sudo ln -s ~/.config/nvim/win32yank.exe /usr/bin/win32yank

执行时没有任何错误 您可以看到我的win32yank在.config的nvim文件夹中,就像在ln命令中一样 enter image description here

我也添加了我的checkhealth,看到剪贴板貌似没任何问题 enter image description here

点赞
用户12921709
用户12921709

我会查看Neovim的FAQ,其中有解决我的问题的信息。

首先检查您是否能够在命令行中执行win32yank.exe;您应该看到一个用法声明。如果您没有看到它,您可能想使用Neovim安装的win32yank版本。

然而,在我的情况下,运行以下命令可以解决问题(~/bin在我的$PATH中):

curl -sLo/tmp/win32yank.zip https://github.com/equalsraf/win32yank/releases/download/v0.0.4/win32yank-x64.zip
unzip -p /tmp/win32yank.zip win32yank.exe > /tmp/win32yank.exe
chmod +x /tmp/win32yank.exe
mv /tmp/win32yank.exe ~/bin

完成此操作后,您不需要设置vim.g.clipboard变量。

如果这不是很有帮助,请原谅,这是我发布的第一篇文章。

2021-08-10 21:08:30
用户9842112
用户9842112

我每天都使用WSL的neovim,效果很好。

除了Ethan A的回答,我还想补充一些。

你唯一需要做的是下载win32yank.exe,并按照说明将其移动到正确的安装位置。

但我在我的配置中设置了vim.o.clipboard,像这样:

vim.o.clipboard ='unnamedplus'

在vim和其它所有程序之间复制粘贴(用于WSL剪贴板使用)。

这就是全部内容。删除所有与剪贴板相关的其他配置,因为它们是不必要的。

2022-10-20 16:29:58