在Vim中,是否有一种方法可以将当前行号复制到缓冲区中?

11
当使用gdb和Vim时,我经常想在特定行停止。通常在Vim中,我将显示在规则区域的行号复制并粘贴到gdb会话中。如果我可以使用像"+<magic-incantation>这样的东西来将当前光标位置的行号复制到xclipboard缓冲区中,那就省了很多麻烦。这可能吗?
4个回答

12

将此内容放入您的vimrc文件中

map ,n <Esc>:let @*=line(".")<CR>

然后使用 ,n 将当前行号复制到剪贴板


8
所以,这条神奇的代码是:
 :call setreg('*', line('.'))

原因:

  1. 寄存器 * 持有剪贴板
  2. line('.') 保存当前行号

当然,您可以将该函数映射到快捷键上:

nmap ,ln :call setreg('*', line('.'))<CR>

0

-1

不确定这是否符合您的要求,但您是否尝试过使用标记?

将光标放在您想要的行上,然后输入m和一个字母,比如a。

输入“a”将带您到包含标记的行。

输入“`a”将带您到标记行中实际标记的字母处。

嗯,再深入思考一下,由于行号可用于各种功能,例如用于状态栏,因此必须可用。


很不错的尝试,但是缓冲区不能保留下一行。标记和复制必须使用不同的寄存器集... - richq
抱歉,我不确定你需要这个的原因,但我假设只是为了导航。也许可以添加更多文本来澄清问题? - Rob Wells

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