使用vim,我想使用C-o
和C-i
来浏览跳转列表,我想使用相同的内容移动到上一个和下一个文件<leader>o
和{ {1}}。
我知道我可以使用缓冲区,但列表并不总是一样。
我尝试使用EnhancedJump,但我有一些错误,似乎已经过时了。
你有解决方案吗?
答案 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