与vim的跳转列表混淆

与vim的跳转列表混淆,vim,jump-list,Vim,Jump List,各位,我对vim的移动和跳转列表有些困惑。 我认为它不太适合代码理解。假设我们有如下代码: 主程序包 输入“fmt” func main(){ fmt.Println(“vim go”) 你好(世界) 最后答覆() } func hello_world(){ 你好() 世界() } func hello(){ hello1() } func hello1(){} func world(){ 世界1() } func world1(){} func最终答案(){ 最后() 答复() } func

各位,我对vim的移动和跳转列表有些困惑。 我认为它不太适合代码理解。假设我们有如下代码:

主程序包
输入“fmt”
func main(){
fmt.Println(“vim go”)
你好(世界)
最后答覆()
}
func hello_world(){
你好()
世界()
}
func hello(){
hello1()
}
func hello1(){}
func world(){
世界1()
}
func world1(){}
func最终答案(){
最后()
答复()
}
func final(){
最后1()
}
func final1(){
}
func答案(){
答复1()
}
func answer1(){}
现在我想了解主函数的作用。所以,我必须 Figure hello_world和final_answer函数的作用以及hello,world,final。。。 我认为理解所有这些函数的途径应该是

当使用和浏览代码时,我得到了如下跳转路径:

vim的跳线列表与图中步骤9中我想要的代码路径不一致

我想要的方式是,当我在函数hello_world中调用world()时,我可以跳回main中调用hello_world(),但不能跳回hello1()的定义

有人知道我是否用错了vim的跳转列表吗?
或者,当我按下at world()时,如何跳回hello_world?

最后,我在中找到了一个宏

正如评论所说

如果最后使用的条目不在顶部,则通过旋转将其置于顶部 堆栈将一直保存到最新(较新的条目将位于底部)。 在顶部保留一个条目(最后使用的条目)

通过在src/Makefile中添加一行:

额外_DEFS+=-DJUMPLIST_旋转


重新编译vim,我可以得到我想要的。

vim跳转列表与代码没有任何关系。它记得你在文本文件中的最后一次跳跃(光标位置)。哇,这真是太令人惊讶了!今天我学会了。感谢您深入挖掘并找出此行为的来源。同时,JUMPLIST_ROTATE已从中删除