Vim拷贝字符到剪贴板
vim里某些情况下想拷贝文字到剪贴板, 用鼠标和剪贴板都感觉不方便… 不能
yw
直接拷贝一个单词到剪贴板么?
Google 一下 vim yank buffer clipboard
:
- Put
set clipboard=unnamed
in yourvimrc
.- Select what you want to
copy
in Visual mode (Pressv
to enter).- Back to Normal mode (Press
escape[esc]
), pressy
to copy.- If you want to paste something from OS’s clipboard, press
p/P
in Vim Normal mode.
是否支持剪贴板
# 剪贴板是否支持 (带 + 号的是支持的)
$ vim --version | grep clipboard
+clipboard
如果不支持的话, 可以先卸载, 然后重新安装一下vim
, 不过 brew install vim
安装的好像默认就是支持的吧
对源码安装感兴趣的可以参考一下:Mac源码安装vim 支持python2/3,lua,ruby,perl解释器
全局启用/禁用
- 手动开启(推荐, 按需开启/禁用)
- 打开文件:
vim filename
- 切换到命令模式:
ESC
+:
- 输入
set clipboard
可以查看当前状态 (set cli
+TAB
可以自动补齐的) - 输入
set clipboard=unnamed
开启剪贴板功能 - 输入
set clipboard=
停用剪贴板功能
- 打开文件:
- 编辑文件时默认开启
- 在
~/.vimrc
文件里设置set clipboard=unnamed
- 临时禁用/开启方式同上; 每次默认是开启的 (有时也不一定方便的)
- 在
(2018-10-20更)
局部启用(推荐)
全局启用有个明显的缺点, 就是缓冲区和剪贴板通用了
比如: yw
yy
dw
vip
之类的操作内容直接放到剪贴板里了;
比如在网页拷贝的字符串, 想在 vim
里覆盖一段内容, 当你删除内容后粘贴时, 是你刚刚删除的内容, 因为删除的内容已经把剪贴板覆盖了
:set clipboard=
- 改为模式模式可视化模式选中目标文本
"*y
- 存入寄存器"*
中, 而"*
和"+
在Mac和Windows中,都是指系统剪切板(clipboard); 其他程序直接就可以:Ctrl+v
粘贴使用"*p
- vim 粘贴"*
寄存器的内容, 即从系统剪贴板里粘贴到 vim 里; 比如从网页上拷贝的内容可使用吃饭时粘贴
参考:
- How to copy to clipboard in Vim?
- Mac源码安装vim 支持python2/3,lua,ruby,perl解释器
- How can I copy text to the system clipboard from Vim?
- 使用 Vim 寄存器
blog comments powered by Disqus