如何在Vim中修改剪贴板寄存器或为其设置别名?
解决Vim中给剪贴板寄存器创建别名的问题
Vim本身不支持直接给寄存器重命名,但可以通过两种简单方式实现你要的效果:
方法一:直接映射操作序列
把输入"ap的动作直接映射成执行剪贴板粘贴的"+p,在你的Vim配置文件(~/.vimrc或Neovim的~/.config/nvim/init.vim)里添加以下内容:
" 普通模式下的映射 nnoremap "ap "+p " 可视模式下的映射(可选,适配可视模式操作) xnoremap "ap "+p
保存配置后重启Vim,以后输入"ap就会直接调用剪贴板寄存器粘贴内容。
方法二:同步寄存器a与剪贴板寄存器
如果希望寄存器a始终和系统剪贴板保持同步(不仅粘贴,复制到a也会同步到剪贴板),可以在配置文件里添加:
" 启动Vim时同步剪贴板内容到a寄存器 let @a = @+ " 每次复制文本后,同步剪贴板到a寄存器 autocmd TextYankPost * let @a = @+ " 当Vim重新获得焦点时,同步剪贴板到a寄存器(避免外部修改剪贴板后Vim内a寄存器不同步) autocmd FocusGained * let @a = @+ " 可选:如果复制到a寄存器,同步内容到系统剪贴板 autocmd TextYankPost * if v:event.regname == 'a' | let @+ = @a | endif
这样不管是外部修改剪贴板,还是在Vim里复制到a寄存器,两边都会保持同步,输入"ap自然就能粘贴剪贴板内容。
内容的提问来源于stack exchange,提问作者Nannik
相关产品推荐
相关产品推荐

