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

在Vim中,是否有方法将当前行号复制到缓冲区中?,vim,x11,Vim,X11,当使用gdb和Vim时,我通常希望在特定线路上停止。通常在Vim中,我将规则区域上显示的行号复制粘贴到gdb会话。如果我可以使用类似于“+的方法将当前光标位置的行号复制到xclipboard缓冲区中,这会为我节省很多麻烦。这可能吗?不确定这是否是您想要的,但您尝试过使用标记吗 将光标放在所需的行上,然后输入m和一个字母,例如a 输入“a”将带您到包含标记的行 输入'a'将转到您在行中标记的实际字母 嗯,再进一步想一想,这必须是可用的,因为行号可用于各种功能,例如用于状态栏。将其放入vimrc中

当使用gdb和Vim时,我通常希望在特定线路上停止。通常在Vim中,我将规则区域上显示的行号复制粘贴到gdb会话。如果我可以使用类似于
“+
的方法将当前光标位置的行号复制到xclipboard缓冲区中,这会为我节省很多麻烦。这可能吗?

不确定这是否是您想要的,但您尝试过使用标记吗

将光标放在所需的行上,然后输入m和一个字母,例如a

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

输入'a'将转到您在行中标记的实际字母

嗯,再进一步想一想,这必须是可用的,因为行号可用于各种功能,例如用于状态栏。

将其放入vimrc中

map ,n <Esc>:let @*=line(".")<CR>
map,n:let@*=行(“.”)
然后使用,n将当前行号复制到剪贴板中,因此魔线为:

 :call setreg('*', line('.'))
原因是:

  • 寄存器*保存剪贴板
  • 行('.')
    保存当前行号
  • 当然,您可以将该函数映射到快捷方式:

    nmap ,ln :call setreg('*', line('.'))<CR>
    
    nmap,ln:call setreg('*',line('.'))
    
    另外,要从vim内部使用GDB,您可能需要查看vim.sourceforge.net上的一些GDB脚本-


    很好的尝试,但遗憾的是,a缓冲区无法在事后保持一致。马克和扬克必须使用不同的寄存器组…Bugger。不确定你想要这个做什么,但我假设只是导航。也许可以添加更多的文本来澄清问题?