如何将当前缓冲区的文件名从 OS X 上的 Vim 发送到剪贴板。
问问题
1113 次
4 回答
7
这对你有帮助吗?
:let @+=expand('%:p')
如果您需要经常这样做,请创建地图。
于 2013-11-01T13:27:03.853 回答
1
这会做到的
:!echo -n % | pbcopy
%
代表 Vim 中当前缓冲区的文件名。echo -n %
将打印当前文件名,最后没有换行符。|
将上述表达式的输出通过管道传递到以下命令pbcopy
在 OS X 上将东西添加到剪贴板。
您可以通过将其放入您的.vimrc
nnoremap <leader>f :!echo -n % \| pbcopy<cr>
于 2013-11-01T11:35:09.687 回答
0
我在我的~/.vimrc
文件中使用以下内容:
" yank a register into another register
" ["x]yr{reg}
nnoremap <silent> yr :call setreg(v:register, getreg(nr2char(getchar())))<cr>
这允许我将一个寄存器复制到另一个寄存器。我通常使用它来将@%
寄存器复制到未命名或系统剪贴板。例如"+yr%
。@.
但是,我发现在极少数情况下复制and很有用@:
。
于 2014-11-05T20:40:44.730 回答
0
在 OSX 上。要将完整路径复制到剪贴板,您可以使用
:!echo %:p | pbcopy
然后您可以将其粘贴到任何地方(包括vim)
于 2016-11-19T19:33:22.303 回答