neovim如何与系统剪贴板交互?
neovim和系统剪贴板的交互方式和vim的机制是不同的,所以不要先入为主的用vim的方式使用neovim。
neovim需要外部的程序与系统剪贴板进行交互,参考:help clipboard
neovim按照如下的优先级级方式选择交互程序:
- |g:clipboard|
- pbcopy, pbpaste (macOS)
- wl-copy, wl-paste (if $WAYLAND_DISPLAY is set)
- xclip (if $DISPLAY is set)
- xsel (if $DISPLAY is set)
- lemonade (for SSH) https://github.com/pocke/lemonade
- doitclient (for SSH) http://www.chiark.greenend.org.uk/~sgtatham/doit/
- win32yank (Windows)
- termux (via termux-clipboard-set, termux-clipboard-set)
- tmux (if $TMUX is set)
因为我的操作系统是linux, 所以方便的方式是直接安装xclip。
sudo pacman -Syu xclip
两个系统剪贴板有何不同?
对于windows和mac来说,只有有一个系统剪贴板,对于linux有两个。
- 剪贴板,鼠标选择剪贴板
- 剪贴板,选择之后复制剪贴板
如下图,我用鼠标选择了12345, 但是没有按ctrl + c, 这时候你打开nvim, 执行:reg, 可以看到注册器
"* 12345
如果按了ctrl + c
"* 12345
"+ 12345
所以,在vim中如果想粘贴系统剪贴板中的内容,可以是用 C-R * 或者 C-R +
如何把vim buffer中的全部内容复制到系统剪贴板?
:%y+