如何更改vim标签列表插件的预览结果位置(点击'p')

时间:2013-10-08 09:19:19

标签: vim taglist

在taglist窗口中使用preview [p]或jump-to [enter]命令时,默认情况下在文件编辑窗口中显示相应的行。因为我主要需要在所选标签(功能)之后看到更多正确的内容,所以我很乐意从中心更改标签显示的行,让我们说当前页面大小的三分之一(行数)甚至是一条明确的线(让我们说从顶部开始的第10行)。

是否有调整所选标签显示位置的命令/设置? (我在手册中找不到一个)。

由于

3 个答案:

答案 0 :(得分:1)

你可能正在寻找zt(在窗口顶部用当前行重绘)和zz(在中心重绘)命令,或者介于两者之间的某些东西(可以实现)在这些命令之后使用<C-Y> / <C-E>

如何将其合并到插件中最好与插件的作者讨论。由于您没有找到此配置设置,因此您可能需要直接修改源代码。把你的建议写给作者;您可以在下一个插件版本中获得配置/挂钩,或者提示如何执行此操作,或者作者对于为什么这是一个坏主意的看法。

答案 1 :(得分:0)

您可以尝试调整scrolloff设置。我不知道标签栏插件,但我想设置:set so=5应该在跳转时提供一些上下文。

答案 2 :(得分:0)

好吧,关于Ingo Karkat的评论,我设法找到taglist插件中的相应行(从第3357行开始,版本4.6):

" Jump to the tag
if a:tagpat != ''
    " Add the current cursor position to the jump list, so that user can
    " jump back using the ' and ` marks.
    mark '
    silent call search(a:tagpat, 'w')

    " Bring the line to the middle of the window
    normal! z.

    " If the line is inside a fold, open the fold
    if foldclosed('.') != -1
        .foldopen
    endif
endif

此处需要将normal! z.部分适当地更改为适当改变所选行位置的部分。因为我不是vim-plugin大师,所以我以最愚蠢的方式改变它

" Bring the line to the middle of the window
normal! zt
normal! 10k
silent call search(a:tagpat, 'w')

只是走了10次,然后再次搜索正确的位置。希望这可能会帮助那些在同一个问题上“挣扎”的人,直到提出更好的解决方案,或者作者Yegappan Lakshmanan将这个(或者说更好的东西)包含在他的插件中(以防他当然决定这样做) :))