在 taglist 窗口中使用预览 [p] 或跳转到 [enter] 命令时,默认情况下,文件编辑窗口中的相应行。因为我主要需要查看所选标签(函数)之后的更多内容,所以我很想将标签从中心显示的行更改为当前页面大小的三分之一(行数)甚至是明确的行(比如说从顶部算起的第 10 行)。
是否有可以调整所选标签的显示位置的命令/设置?(我在手册中找不到)。
谢谢
您可能正在寻找zt
(redraw with current line at the top of the window) 和zz
(redraw at center) 命令,或介于两者之间的东西(可以通过<C-Y>
/<C-E>
在这些命令之后实现)。
最好与插件作者讨论如何将其合并到插件中。由于您没有找到此配置设置,您可能必须直接修改源代码。将您的建议写给作者;您可能会在下一个插件版本中获得此配置/挂钩,或提示如何执行此操作,或者可能是作者对为什么这是一个坏主意的看法。
您可以尝试调整scrolloff
设置。我不知道标签栏插件,但我想设置:set so=5
应该在跳转时为您提供一些上下文。
好吧,关于 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 将这个(或者更好的东西)包含到他的插件中(如果他当然决定这样做:) )