我一直在尝试扩展这三个命令(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 甚至 map 似乎根本不起作用。
- 当我尝试拉动(例如)多行(例如 2yy)时,它会按预期将文本拉入“常规”寄存器(“0)”,但仅将第一行拉入系统剪贴板。
- 我找不到在正常模式下为 y、c 和 d 创建这种行为的方法。
任何人都可以帮助解决这些问题吗?
我想创建一个函数,也许,所以我可以多次调用它,但我的 vim script-fu 充其量是新手。