" TagKind shows an overlay containing the kind of tag requested " In the overlay window: " jumps to the current-line tag name " q closes the overlay without action function! TagKind(kind) let tags = sort(map(filter(taglist('.'), 'v:val.kind == "' . a:kind . '"'), 'v:val.name')) call overlay#show( \ tags \, { \ '' : ':call TagKindAccept()' \ , 'q' : ':call overlay#close()' \ } \, {'filter' : 0, 'use_split' : 1}) endfunction function! TagKindAccept() let tag = overlay#select_line() exe 'tjump ' . tag endfunction nnoremap tc :call TagKind('c') nnoremap tf :call TagKind('f')