В Vim есть способ скопировать номер текущей строки в буфер?

При использовании gdb и Vim часто хочется остановиться на определенной строке. Обычно в Vim я копирую и вставляю номер строки, отображаемый в области правил, в сеанс gdb. Это избавило бы меня от многих хлопот, если бы я мог использовать что-то вроде "+<magic-incantation> для копирования номера строки текущей позиции курсора в буфер xclipboard. Это возможно?


person richq    schedule 17.11.2008    source источник


Ответы (4)


поместите это в свой vimrc

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

затем с помощью ,n скопирует текущий номер строки в буфер обмена

person Gowri    schedule 17.11.2008

Итак, волшебная строка:

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

Причина:

  1. Регистр * держать буфер обмена
  2. line('.') содержит текущий номер строки

Конечно, вы можете сопоставить эту функцию с ярлыком:

nmap ,ln :call setreg('*', line('.'))<CR>
person PierreBdR    schedule 17.11.2008

Кроме того, чтобы использовать GDB из vim, вы можете проверить некоторые сценарии gdb на vim.sourceforge.net -

person Gowri    schedule 17.11.2008

Не уверен, что это то, что вам нужно, но пробовали ли вы использовать маркеры?

Поместите курсор на нужную строку, затем введите m и букву, скажем, a.

Ввод 'a приведет вас к строке, содержащей маркер.

Ввод `a приведет вас к фактической букве, которую вы отметили в строке.

Хм, если немного подумать, это должно быть доступно, поскольку номер строки доступен для использования в различных функциях, например. для использования в строке состояния.

person Rob Wells    schedule 17.11.2008
comment
Хорошая попытка, но, к сожалению, после этого буфер a не удерживает строку. Метки и янки должны использовать другой набор регистров... - person richq; 17.11.2008
comment
Баггер. Не уверен, для чего вы это хотели, но я предположил, что это просто навигация. Может быть, добавить немного больше текста, чтобы уточнить вопросы? - person Rob Wells; 17.11.2008