如何使用 wayland 从 Vim 复制到系统剪贴板而不编译 vim `+clipboard` 功能标志
How to copy from Vim to system clipboard using wayland and without compiled vim `+clipboard` feature flag
我无法复制到 +
或 *
寄存器中。
:echo has('clipboard')
来自 Vim returns 0
意味着我没有那个功能标志,我不想重新编译。
我是 运行 韦兰所以我不能使用 X11 based solutions
我找不到资源,所以这是通过添加 ~/.vimrc
.
最终得到的结果
nnoremap <C-@> :call system("wl-copy", @")<CR>
wl-copy
是一个 Command-line copy/paste utilities for Wayland,它会将您提供的管道内容复制到系统剪贴板。
上面的映射实现的是
- 使用
Ctrl + @
激活映射。或选择任何方便的组合键
nnoremap <C-@>
取"
寄存器的内容,
- 由
@"
参数表示
并将 @"
的内容作为参数传递给系统 wl-copy
函数
- 显示为
:call system("wl-copy", @")
。
假设您只想复制文件的行部分,请执行 shift
+v
进入可视模式并只突出显示我要复制的行。那就做吧。
:'<,'>w !wl-copy
哪里
'<,'>
- 表示您使用视觉模式 select 一个范围(您不输入这个)
w !{cmd}
- 将范围写入 cmd
的标准输入,请参阅 :help w_c
您可以将其映射为
xnoremap <silent> <C-@> :w !wl-copy<CR><CR>
xnoremap
: 映射只能在可视模式下工作
<silent>
: 不会在命令行回显的映射
<C-@>
: 所需组合键
:w !{cmd}
:将范围写入cmd
的stdin
<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>
我无法复制到 +
或 *
寄存器中。
:echo has('clipboard')
来自 Vim returns 0
意味着我没有那个功能标志,我不想重新编译。
我是 运行 韦兰所以我不能使用 X11 based solutions
我找不到资源,所以这是通过添加 ~/.vimrc
.
nnoremap <C-@> :call system("wl-copy", @")<CR>
wl-copy
是一个 Command-line copy/paste utilities for Wayland,它会将您提供的管道内容复制到系统剪贴板。
上面的映射实现的是
- 使用
Ctrl + @
激活映射。或选择任何方便的组合键nnoremap <C-@>
取
"
寄存器的内容,- 由
@"
参数表示
- 由
并将
@"
的内容作为参数传递给系统wl-copy
函数- 显示为
:call system("wl-copy", @")
。
- 显示为
假设您只想复制文件的行部分,请执行 shift
+v
进入可视模式并只突出显示我要复制的行。那就做吧。
:'<,'>w !wl-copy
哪里
'<,'>
- 表示您使用视觉模式 select 一个范围(您不输入这个)w !{cmd}
- 将范围写入cmd
的标准输入,请参阅:help w_c
您可以将其映射为
xnoremap <silent> <C-@> :w !wl-copy<CR><CR>
xnoremap
: 映射只能在可视模式下工作<silent>
: 不会在命令行回显的映射<C-@>
: 所需组合键:w !{cmd}
:将范围写入cmd
的stdin
<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>