1

如何将当前缓冲区的文件名从 OS X 上的 Vim 发送到剪贴板。

4

4 回答 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 回答