Как изменить положение результата предварительного просмотра плагина taglist vim (нажав "p")
При использовании команды предварительного просмотра [p] или перехода к [enter] в окне taglist соответствующая строка по умолчанию находится в окне редактирования файла. Поскольку мне в основном нужно видеть больше того, что находится сразу после выбранного тега (функции), я бы хотел изменить строку, в которой тег отображается из центра, скажем, на одну треть от текущего размера страницы (количество строк) или даже в явную строку (скажем, 10-я строка сверху).
Есть ли команда / настройки, которые бы регулировали отображаемую позицию выбранного тега? (Я не мог найти один в руководстве).
Спасибо
3 ответа
Что касается комментария Инго Карката, мне удалось найти соответствующую строку в плагине 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, автор, не включит это (или, скорее, что-то более приятное) в свой плагин (если он, конечно, решит это сделать):))
Вы, вероятно, ищете zt
(перерисовать с текущей строкой вверху окна) и zz
(перерисовать в центре) команды, или что-то промежуточное (что может быть достигнуто с помощью <C-Y>
/ <C-E>
после этих команд).
Как включить это в плагин, лучше всего обсудить с автором плагина. Поскольку вы не нашли никаких настроек для этого, вам, вероятно, придется напрямую изменить исходный код. Напишите свое предложение автору; вы можете получить конфигурацию / зацепку для этого в следующей версии плагина, или советы, как это сделать, или, возможно, мнение автора о том, почему это плохая идея.
Вы можете попытаться настроить scrolloff
установка. Я не знаю плагин tagbar но я представляю настройки :set so=5
должен предоставить вам некоторый контекст при прыжках вокруг.