перейти к определению cscope в уже открытом буфере

Я обычно использую cscope просмотреть мой код. Всякий раз, когда я ударил C ] текущий буфер, который я читаю, изменяется, и отображается файл, содержащий определение.

Предположим, у меня уже есть вкладка в vim с уже открытым этим файлом: есть ли способ перейти из моего текущего местоположения прямо в тот файл, который уже открыт?

Мне не нужно разбивать, а просто перейти к файлу, который уже открыт в буфере.

2

Решение

Вы можете приблизиться к тому, что вы хотите с комбинацией опций:

" use the quickfix list/window for all cscope queries
set cscopequickfix=s-,g-,c-,d-,i-,t-,e-

" quickfix commands jump to the target buffer where it is displayed
set switchbuf=useopen,usetab

и переназначение:

" override the default <C-]> behaviour
nnoremap <C-]> :cs f g <C-R><C-w><CR>
2

Другие решения

Для обычных тегов есть <C-W>] картирование и :stag команда, которая разбивает окно перед переходом тега.

Для cscope есть :cstag, но нет :scstagтак что вам придется делать отдельные команды, например:

:split | cstag ...

Вы, вероятно, можете изменить / добавить C ] картирование, которое вы имеете таким образом.

В идеале это будет учитывать 'switchbuf' и повторно использовать существующее окно, показывающее этот целевой буфер, вместо того, чтобы делать разделение. К сожалению, Vim current ведет себя не так, и реализовать это самостоятельно сложно, в основном потому, что вам нужно каким-то образом получить целевой файл перед переходом, чтобы проверить доступность буфера через bufwinnr(),

1

По вопросам рекламы [email protected]