我该如何在OS X上使用Vim将当前缓冲区的文件名发送到剪贴板?
这有帮助吗?
:let @+=expand('%:p')
如果您需要经常这样做,请创建一个映射。
:!echo -n % | pbcopy
%
在Vim中代表当前缓存区的文件名。echo -n %
将打印当前文件名,但不会在结尾处添加换行符。|
会将上述表达式的输出传输到下面的命令。pbcopy
可以将内容添加到Mac OS X系统剪贴板中。您可以将此映射到一个方便的快捷键,方法是将其放入您的.vimrc
文件中。
nnoremap <leader>f :!echo -n % \| pbcopy<cr>
~/.vimrc
文件中使用以下内容:" yank a register into another register
" ["x]yr{reg}
nnoremap <silent> yr :call setreg(v:register, getreg(nr2char(getchar())))<cr>
这使我能够将一个寄存器复制到另一个寄存器。通常我使用它将@%
寄存器复制到无名或系统剪贴板中。例如"+yr%
。但是我偶尔发现复制@.
和@:
也很有用。
:!echo %:p | pbcopy
然后您可以将其粘贴到任何地方(包括vim)。