【问题标题】:VIM - How can I put my current position in jumplist?VIM - 如何将我当前的位置放在跳转列表中?
【发布时间】:2015-01-27 10:05:30
【问题描述】:

我想知道 vim 的改进,我可以跳回到我上次停下来移动大约 3 秒的地方。然后我可以滚动并有一个踢快捷方式跳回我使用相同的旧 CTRL+o 的位置。

Vim 在 :jumps 列表中放置了很多动作,我想知道其中的一半对我来说在任何时候都没有用,那么我该怎么做呢?

换句话说,我试图让跳转列表更合理。

ps:Netbeans 和 VS 有类似的行为。

【问题讨论】:

    标签: vim shortcuts


    【解决方案1】:

    要将当前位置自动添加到跳转列表,您可以利用CursorHold 事件:

    :autocmd CursorHold * normal! m'
    

    导航使用默认的<C-o> / <C-i>

    【讨论】:

    • 它会追加还是替换最后一个?
    • 它们将被附加;你不能替换那些。
    【解决方案2】:

    使用m' 命令跳转是很常见的。例如,您可以输入mx,然后去做一些事情,然后输入'x 以跳回到您输入mx 时的位置。这适用于字母表中的每个字母(即mamb、...mz)。大写标记(mAmB、...)也会记住文件名,以便您可以在文件之间跳转。有a number of other special marks可以设置成各种用途。

    “先前的上下文标记”称为'。跳转时自动设置,也可以用m'手动设置。使用'' 跳转到它。 m' 命令还手动将跳转添加到跳转列表。 '' 大致相当于 Ctrl+O,但不计入。

    如果你用反引号替换这些命令中的撇号,Vim 将跳转到特定的列而不仅仅是行。在实践中,撇号更容易输入并且通常足够接近。

    【讨论】:

    • 我知道标记,但是当你分析日志时它还不够,你滚动太多了。标准跳转对于这种情况也没有用,因为我需要不止一个自动存储跳转。
    • @MaikoID:为什么不在需要时手动设置字母标记?
    • 因为我需要在开始滚动之前设置它们,而我根本不记得这样做。我用标记来记住重要的事情,我认为用它来帮助滚动是错误的,但这是我的看法。
    • 你有 26 个(52 个计数文件标记)。您可以而且应该将它们用于您想要的任何东西。
    【解决方案3】:

    您可以在' 寄存器中设置标记。击键将是m'

    我在 vim 的文档 :help jumplist 中找到了这个。

    您可以通过使用“m”设置'标记来显式添加跳转。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-27
      • 2011-01-07
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 2010-10-17
      相关资源
      最近更新 更多