0

在 taglist 窗口中使用预览 [p] 或跳转到 [enter] 命令时,默认情况下,文件编辑窗口中的相应行。因为我主要需要查看所选标签(函数)之后的更多内容,所以我很想将标签从中心显示的行更改为当前页面大小的三分之一(行数)甚至是明确的行(比如说从顶部算起的第 10 行)。

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

谢谢

4

3 回答 3

1

您可能正在寻找zt(redraw with current line at the top of the window) 和zz(redraw at center) 命令,或介于两者之间的东西(可以通过<C-Y>/<C-E>在这些命令之后实现)。

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

于 2013-10-08T10:04:51.633 回答
0

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

于 2013-10-08T13:04:29.150 回答
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 插件大师,所以我以最愚蠢的方式将其更改为

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

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

于 2013-10-09T08:44:09.960 回答