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

China☆狼群 提交于 2019-12-21 04:32:25

问题


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?


回答1:


put this in your vimrc

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

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




回答2:


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>



回答3:


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

  • http://vim.sourceforge.net/scripts/script.php?script_id=84
  • http://vim.sourceforge.net/scripts/script.php?script_id=663



回答4:


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.



来源:https://stackoverflow.com/questions/295321/in-vim-is-there-a-way-to-copy-the-current-line-number-into-a-buffer

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!