我无法复制到+
或*
注册。
:echo has('clipboard')
从 Vim 内部返回0
意味着我没有那个功能标志,我不想重新编译。
我正在运行 Wayland,所以我不能使用基于 X11 的解决方案
我无法复制到+
或*
注册。
:echo has('clipboard')
从 Vim 内部返回0
意味着我没有那个功能标志,我不想重新编译。
我正在运行 Wayland,所以我不能使用基于 X11 的解决方案
我在寻找资源时遇到了麻烦,所以这就是通过添加~/.vimrc
.
nnoremap <C-@> :call system("wl-copy", @")<CR>
wl-copy
是Wayland 的命令行复制/粘贴实用程序,它会将您提供的管道内容复制到系统剪贴板。
上面的映射实现的是
Ctrl + @
。或选择任何方便的组合键
nnoremap <C-@>
获取"
寄存器的内容,
@"
参数表示和管道内容@"
作为系统wl-copy
函数的参数
:call system("wl-copy", @")
。假设您只想复制文件的行部分,请执行shift
+v
进入可视模式并仅突出显示我要复制的行。然后做。
:'<,'>w !wl-copy
在哪里
'<,'>
- 表示您使用可视模式选择范围(您不输入此内容)w !{cmd}
- 将范围写入标准输入cmd
,请参阅:help w_c
你可以用
xnoremap <silent> <C-@> :w !wl-copy<CR><CR>
xnoremap
:映射仅在可视模式下工作<silent>
: 不会在命令行中回显的映射<C-@>
:所需的组合键:w !{cmd}
: 将范围写入标准输入cmd
<CR><CR>
: 需要两次输入否则命令行等待另一个命令作者要求的功能有望在 vim 中实现。详情见:https ://github.com/vim/vim/issues/5157
还有一个解决方法插件:https ://github.com/jasonccox/vim-wayland-clipboard
至于我,我正在使用自己的解决方法:
" Yank into all these at once:
" vim y/p register
" wayland primary
" wayland clipboard
xnoremap <silent> <leader>y y:call system("wl-copy --trim-newline", @*)<cr>:call system("wl-copy -p --trim-newline", @*)<cr>