将当前文件名复制到剪贴板

时间:2013-11-01 11:31:04

标签: macos vim clipboard

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

4 个答案:

答案 0 :(得分:4)

这对你有帮助吗?

:let @+=expand('%:p')

如果您经常需要这样做,请创建一个地图。

答案 1 :(得分:0)

这样做

:!echo -n % | pbcopy
  • %代表Vim中当前缓冲区的文件名。
  • echo -n %将打印当前文件名,最后没有换行符。
  • |会将上述表达式的输出传递给以下命令
  • pbcopy在OS X上向clopboard添加内容。

您可以将其放在.vimrc

中,以便将其映射到便捷的快捷方式
nnoremap <leader>f :!echo -n % \| pbcopy<cr>

答案 2 :(得分:0)

我在~/.vimrc文件中使用以下内容:

" yank a register into another register
" ["x]yr{reg}
nnoremap <silent> yr :call setreg(v:register, getreg(nr2char(getchar())))<cr>

这允许我将寄存器复制到另一个寄存器。我通常使用它将@%寄存器复制到未命名或系统剪贴板。例如"+yr%。不过,我发现在极少数情况下复制@.@:非常有用。

答案 3 :(得分:0)

在OSX上。要将完整路径复制到剪贴板,您可以使用 :!echo %:p | pbcopy 然后你可以将它粘贴到任何地方(包括vim)