Vim方法跳转到光标下的数字



在vim中,有没有比更优雅的方法可以跳到光标下的行号

map gn "nyw@nG

"gn"或其他组合键?这就需要确保光标位于字符串的开头。此外,这个宏可能有点危险,这取决于寄存器"n"中的内容。

甚至不完全确定为什么这样做:@n意味着执行寄存器n(一个数字)中的内容,而不是将其和"G"连接。

类似的功能

call cursor(expand("<cword>"),1)

似乎也不起作用。

想法?

我建议这样做:

nnoremap gn yiw:exec (@" =~ '^d+$' ? 'norm @"G' : '')<cr>

它修复了您提到的许多问题,例如:

  • 这需要确保光标位于单词的开头(这里的"单词"表示一串数字)。

    使用yiw而不是yw可以解决此问题。阅读文本对象!

  • 此外,这个宏可能有点危险,这取决于寄存器中的内容";n〃;。

    只有当光标位于数字上时,才会执行任何代码。否则,它什么也不做。

还有一些其他优势:

  • 使用nnoremap而不是map是最佳实践。这将为你省去很多麻烦!(更多信息)

  • 它不会干扰您的@n寄存器。

甚至不完全确定为什么这样做:@n意味着执行寄存器n(一个数字)中的内容,而不是将其与"连接;G";。

键入@n会将寄存器n中的文本插入到预编型缓冲区中,就像您键入了它一样。因此,如果命令未完成,它会放在那里(就像您键入的一样)等待命令完成。你甚至可以运行像这样的宏

3d

它将坐在那里等待一项动议,然后删除其中三项动议。

相关内容

  • 没有找到相关文章

最新更新