richq
richq

Reputation: 56438

In Vim, is there a way to copy the current line number into a buffer?

When using gdb and Vim, often I want to stop on a particular line. Normally in Vim I copy-paste the line number showing on the rule area to the gdb session. It'd save me a lot of hassle if I could use something like "+<magic-incantation> to copy the line number of the current cursor position into the xclipboard buffer. Is this possible?

Upvotes: 11

Views: 4748

Answers (4)

Gowri
Gowri

Reputation: 1331

put this in your vimrc

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

then using ,n will copy the current line number into the clipboard

Upvotes: 12

Gowri
Gowri

Reputation: 1331

Also, to use GDB from within vim, you may want to check out some of the gdb scripts on vim.sourceforge.net -

Upvotes: 0

PierreBdR
PierreBdR

Reputation: 43244

So the magic line is:

 :call setreg('*', line('.'))

The reason:

  1. The register * hold the clipboard
  2. line('.') holds the current line number

Of course you can map that function to a shortcut:

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

Upvotes: 8

Rob Wells
Rob Wells

Reputation: 37103

Not sure if this is what you're after but have you tried using markers?

Put the cursor on the line you want, then enter m and a letter, say a.

Entering 'a will take you to the line containing the marker.

Entering `a will take you to the actual letter that you marked in the line.

Hmm, just thinking a bit further, this must be available as the line number is available for use in various functions, e.g. for use in the status bar.

Upvotes: -1

Related Questions