Я использую vim / cscope / ctags для просмотра исходного кода на языке C. Много раз я нахожу, что макрос определен дважды или даже больше, используя #ifdef
s, и я смотрю на определение, которое мне не нужно.
Итак, мой вопрос: есть ли в vim ярлык, с помощью которого я могу узнать, находится ли строка, на которую я смотрю, внутри макроса #ifdef
?
Я могу получить список всех определений, используя :tselect
, но я ищу какой-нибудь ярлык, подобный тому (приведенный ниже пример), который я использую для нахождения функции, в которой я нахожусь.
" Show function name
fun! ShowFuncName()
let lnum = line(".")
let col = col(".")
echohl ModeMsg
echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW'))
echohl None
call search("\\%" . lnum . "l" . "\\%" . col . "c")
endfun
map f :call ShowFuncName() <CR>
Спасибо.