这两个vim键盘快捷键看起来有着相似的作用:<C-T>
会回到历史记录中的上一个标签,而<C-o>
则会返回跳转列表中的上一条目。这两者之间有什么区别呢?
这两个vim键盘快捷键看起来有着相似的作用:<C-T>
会回到历史记录中的上一个标签,而<C-o>
则会返回跳转列表中的上一条目。这两者之间有什么区别呢?
只有在使用类似于 :tag foo
或 <c-]>
这样的方式跳转到标签时,标签栈才会被填充。这意味着,您可以在 <C-]>
和 <C-t>
之间执行任意数量的非标签相关跳转,而不会改变标签栈,并且可以相当自信地认为 <C-t>
将始终将您跳转到您访问过的最新标签并从中进行跳转。
另一方面,跳转列表将记录您在标签相关跳转之间执行的所有跳转,因此使用 <C-o>
通常需要尝试多次才能返回到您想要去的位置,而 <C-t>
则更为专业,可快速返回上一个标签。
将 <C-o>
视为“万能”的返回方式,将 <C-t>
视为 <C-o>
的更加专业化的版本。