gpt4 book ai didi

vim - Vim 中当前缓冲区的 Yank 文件名/路径

转载 作者:行者123 更新时间:2023-12-02 08:27:13 41 4
gpt4 key购买 nike

假设当前缓冲区是一个打开编辑的文件,因此:e不会显示E32: No file name

我想撤回以下一项或全部:

  • 文件名与状态行上显示的完全相同,例如~\myfile.txt
  • 文件的完整路径,例如c:\foo\bar\myfile.txt
  • 只是文件名,例如myfile.txt

最佳答案

TL;DR

:let @" = expand("%")

这会将文件名复制到未命名的寄存器,然后您可以使用旧的 p粘贴它。当然,您可以将其映射到一个键以便更快地使用。

:nmap cp :let @" = expand("%")<cr>

您也可以使用它作为完整路径

:let @" = expand("%:p")

说明

Vim 使用未命名寄存器来存储已删除或复制(拉出)的文本,同样,当您粘贴它时,也会从该寄存器中读取文本。

使用let我们可以使用:let @" = "text"手动将文本存储在寄存器中但我们也可以存储表达式的结果。

在上面的示例中,我们使用函数 expand它扩展了通配符和关键字。在我们的示例中,我们使用 expand('%')扩展当前文件名。我们可以修改为expand('%:p')获取完整文件名。

参见:help let :help expand :help registers了解详情

关于vim - Vim 中当前缓冲区的 Yank 文件名/路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/916875/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com