按下 时,[I
VIM 会显示与光标下的单词匹配的行列表。例如,如果光标在单词上Table
并按下 ,[I
则会显示以下内容:
1: 49 class Table(object):
2: 220 new_table = Table(t, records)
3: 241 tables.append(Table(row[0], row[1],))
4: 392 tables.append(Table(t, records))
Press ENTER or type command to continue
如何轻松地从列表中选择一个选项,即跳转到其中的一行?我试过Tab
、Ctrl-N
、Ctrl-P
、j
箭头键,以及输入1
、2
等。这些都不起作用。我知道我可以简单地输入行号,然后gg
跳转到相关行,但我想知道 VIM 是否还有其他绝招。
答案1
以下 vim 映射应该可以完成您想要的操作(映射基于我对此映射的记忆词:)fast-search
:
nmap <leader>fs [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>
上述命令首先从文件开头列出与光标下的单词匹配的行,然后询问您要跳转到哪个匹配,最后跳转到该匹配。
如果您希望列出从光标下的单词开始的行,而不是文件的开头,则可以使用:
nmap <leader>fs ]I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."]\t"<CR>
注意在后面的命令中方括号被反转。
答案2
该列表不是交互式的,您应该执行以下操作来跳转到第二场比赛:
:220<CR>