复制当前文件名到剪贴板

问题描述 投票:0回答:4

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

macos vim clipboard neovim
4个回答
12
投票

这对你有帮助吗?

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

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


2
投票

这样就可以了

:!echo -n % | pbcopy
  • %
    代表 Vim 中当前缓冲区的文件名。
  • echo -n %
    将打印当前文件名,末尾不带换行符。
  • |
    会将上述表达式的输出通过管道传输到以下命令
  • pbcopy
    在 OS X 上将内容添加到剪贴板。

您可以将其放入您的

.vimrc

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

0
投票

我在我的

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

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

这允许我将一个寄存器复制到另一个寄存器。我通常用它来将

@%
寄存器复制到未命名或系统剪贴板。例如
"+yr%
。不过,我发现在极少数情况下复制
@.
@:
很有用。


0
投票

在 OSX 上。要将完整路径复制到剪贴板,您可以使用


:!echo %:p | pbcopy
然后就可以粘贴到任何地方了(包括vim)

© www.soinside.com 2019 - 2024. All rights reserved.