如何在Vim中为整个文件添加书签,而不是特定的行?

时间:2015-01-12 16:02:14

标签: vim

用例

  • 我打开文件A,转到第A1行
  • 我为它添加了书签
  • 我转到同一档案中的另一条线
  • 我打开文件B
  • 我导航到书签
  • A在A2行打开,而不是在A1行打开

3 个答案:

答案 0 :(得分:3)

只需考虑缓冲区编号,就可以使用(大写)文件标记;即不是通过A回忆(确切标记的)位置,而是

:execute 'buffer' getpos("'A")[0]

当Vim记得缓冲区中的最后一个位置时,它会带你去那里,而不是标记位置。

答案 1 :(得分:2)

标记用于转到设置它们的特定行,列和文件。那是有目的的。

可能适合您的选项:

  • 设置大写标记,例如mA
  • 使用缓冲区导航命令,例如:b foo:b可以采用部分文件名)
  • 使用模糊查找器跳转到缓冲区
  • 记住缓冲区编号并直接使用:b 12(避免这种情况)
  • 使用<c-o>返回缓冲区
  • 使用<c-6>跳转到上一个缓冲区
  • 使用拆分以便您可以同时查看两个缓冲区
  • 在新标签页中打开缓冲区(我倾向于避开标签页)

就个人而言,我只想设置另一个大写标记或使用:b

答案 2 :(得分:0)

将此添加到您的~/.vimrc

nnoremap <c-m> :execute 'buffer' getpos("'" . nr2char(getchar()))[0]<cr>

然后使用mX为文件添加书签,并使用<c-m>X跳转到其中的最后一个位置。