微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim – 重新映射yank(y),更改(c)和删除(d)

我一直在尝试扩展这三个命令(y,c,d)的功能,所以我在系统剪贴板(“寄存器”)和普通寄存器中都有内容.

这是我到目前为止所提出的:

nnoremap Y y$v$"+y$
nnoremap yy 0y$0v$"+y$
vnoremap y ygv"+y
" ------
nnoremap C y$v$"+c
nnoremap cc 0y$0v$"+c
vnoremap c ygv"+c
" ------
nnoremap D y$v$"+d$
nnoremap dd 0y$0v$"+d$
vnoremap d ygv"+d
" ------

我对这个映射有一些问题:

>出于某些奇怪的原因,我必须在实际使用这些新绑定之前为我的.vimrc提供资源.
试图只使用nmap,vmap甚至地图似乎根本不起作用.
>当我尝试猛拉(例如)多行(例如2yy)时,它会按预期将文本拉到“常规”寄存器(“0”),但只将第一行拉入系统剪贴板.
>我无法找到在正常模式下为y,c和d创建此行为的方法.

谁能帮助解决这些问题?

我想过创建一个函数,也许,所以我可以多次调用它,但是我的vim script-fu充其量只是新手.

解决方法

如果你能做“y,那么所有这些映射都没用.只需将set clipboard = unnamedplus添加到你的〜/ .vimrc即可.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐