移至跳转列表

时间:2017-12-05 00:43:34

标签: vim

使用vim,我想使用C-oC-i来浏览跳转列表,我想使用相同的内容移动到上一个和下一个文件<leader>o和{ {1}}。

我知道我可以使用缓冲区,但列表并不总是一样。

我尝试使用EnhancedJump,但我有一些错误,似乎已经过时了。

你有解决方案吗?

1 个答案:

答案 0 :(得分:3)

可以使用这样的函数:

function! JumpBack()
  let l:cfile=expand('%')
  let l:nfile=l:cfile
  while l:cfile == l:nfile
    execute 'normal ' . 1 . "\<c-o>"
    let l:nfile=expand('%')
  endwhile
endfunction

*请注意,这可以写得更干净,它主要粘贴到了上面。

然而,对我来说它似乎是一种大锤方法,也许有一个更好的方法。

更新

如果跳转列表只包含一个文件,那么这将导致无限循环,这并不奇怪。这是一个更好的解决方案:

function! JumpBack()
  let l:cfile=expand('%')
  let l:jl = split(execute('jumps'), '\n')
  let l:jumpcounter = 0
  for l:jumpline in reverse(l:jl)
    let l:jumpcounter = l:jumpcounter + 1
    let l:nfile = split(l:jumpline, '\s')[-1]
    if l:cfile != l:nfile 
      execute 'normal '. l:jumpcounter . "\<c-o>"
      return
    endif
  endfor
endfunction