NavimBackward在Vim?

因此,Ctrl-o仅适用于跳跃并且具有历史记录,“无论您如何在那里结束(跳跃,导航等),都会让您回到最后位置,但是没有历史记录.”

我正在寻找的是这两个世界中最好的,比如Visual studio’s NavigateBackward.Ctrl-o很好,但很多时候它让我回到我不会想到的位置,跳跃不是我导航的唯一方式. ..

> vim中是否有内置的命令/方式来执行此操作?
>如果没有,是否有插件?
>如果没有,我自己编写插件没问题,我知道如何设置/获取插入位置,但是我查看了autocmd事件并且找不到任何触发时
插入符号改变位置.如何检测插入位置的“变化”?

谢谢.

最佳答案 我不确定直截了当地记录所有水平移动是否是个好主意.至少我没有看到太多用于能够撤消单词运动等.你的脚本很好,但你可能也想要一个更“专业”的解决方案..

" Make j and k leave jump marks when used with counts
function! JKMarks(motion)
    execute 'normal! ' . (v:count1 > 1 ? "m'" . v:count1 : '') . a:motion
endfunction
nnoremap <silent> j :<c-u>call JKMarks("j")<cr>
nnoremap <silent> k :<c-u>call JKMarks("k")<cr>

" Make mouse clicks leave jump marks
nnoremap <LeftMouse> m'<LeftMouse>
inoremap <LeftMouse> <c-o>m'<LeftMouse>
点赞