从vim中将文件路径和行号复制到系统剪贴板

8

我想要复制 -

  • 文件的完整路径,例如c:\foo\bar\file.txt:94和其行号

我还想将其粘贴到我的系统剪贴板中,因此我将使用'+'寄存器。

你能建议我可能的方法吗?


你可以在可视化模式下将其突出显示。 - Explosion Pills
你是想在位于 c:\foo\bar\file.txt 的第 94 行上拉取 c:\foo\bar\file.txt:94 吗?还是你想要获取该行的内容? - FDinoff
我正在尝试将 c:\foo\bar\file.txt:94 复制到我的系统剪贴板。 - Hardik Juneja
1个回答

17

如果你正在尝试在c:\foo\bar\file.txt文件的第94行下获取c:\foo\bar\file.txt:94,你可以使用以下语句来设置+寄存器的值为
<file_path>:<line_number>

:let @+=expand("%") . ':' . line(".")

expand("%") - 当前文件名
line(".") - 当前行号

一个例子映射是

nnoremap <leader>y :let @+=expand("%") . ':' . line(".")<CR>

如果已经选择了文本,那么如何修改此映射以将所选文本添加到该寄存器的开头(在路径和行号之前)? - mcabrams
1
@mcabrams 选中文本就像视觉选择一样吗?类似 vnoremap <leader>y "+y:let @+=@+.expand("%") . ':' . line(".")<CR> 这样的命令可能会起作用。将视觉选择复制到 + 寄存器中,然后在寄存器末尾添加文件和行号。 - FDinoff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接