如何使用Wayland从Vim复制到系统剪贴板,而没有编译的Vim`+ clipboard`功能标志

问题描述 投票:0回答:1

我无法复制到+*寄存器中。

Vim中的[:echo has('clipboard')返回0,表示我没有该功能标志,我不想重新编译。

我正在运行Wayland,所以我无法使用X11 based solutions

vim clipboard wayland vim-registers
1个回答
0
投票

我在查找资源时遇到了麻烦,所以这里是通过添加~/.vimrc最终使它起作用的原因。

nnoremap <C-@> :call system("wl-copy", @")<CR>

wl-copyCommand-line copy/paste utilities for Wayland,它将把您提供的管道内容复制到系统剪贴板。

以上实现的映射是

  1. 使用Ctrl + @激活映射。或选择任何方便的按键组合
    • nnoremap <C-@>
  2. 获取"寄存器的内容,

    • @"参数表示
  3. @"的管道内容作为系统wl-copy函数的参数

    • [:call system("wl-copy", @")显示。

Alternatively

假设您只想复制文件的行部分,请执行shift + v进入可视模式,仅突出显示我要复制的行。然后做。

:'<,'>w !wl-copy

where

  • ['<,'>-表示您使用视觉模式选择范围(您无需输入)]
  • [w !{cmd}-将范围写入cmd的标准输入,请参见:help w_c的更多内容

您可以使用]映射它>

xnoremap <silent> <C-@> :w !wl-copy<CR><CR>
  • [xnoremap:仅适用于可视模式
  • <silent>:不会在命令行上回显的映射
  • [<C-@>:所需的组合键
  • [:w !{cmd}:将范围写入cmd的标准输入
  • <CR><CR>:需要两次输入,否则命令行等待另一个命令
© www.soinside.com 2019 - 2024. All rights reserved.