4

我一直在尝试扩展这三个命令(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
" ------

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

  1. 出于某种奇怪的原因,我必须先获取我的 .vimrc 资源,然后才能真正使用这些新绑定。尝试仅使用 nmap、vmap 甚至 map 似乎根本不起作用。
  2. 当我尝试拉动(例如)多行(例如 2yy)时,它会按预期将文本拉入“常规”寄存器(“0)”,但仅将第一行拉入系统剪贴板。
  3. 我找不到在正常模式下为 y、c 和 d 创建这种行为的方法。

任何人都可以帮助解决这些问题吗?

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

4

1 回答 1

3

如果你能做到"+y,所有这些映射都是无用的。只需添加set clipboard+=unnamedplus到您的~/.vimrc.

于 2012-04-19T14:42:15.067 回答