3

Я пишу библиотеку, которая организована в две параллельные и довольно глубокие директории src/ и include/, которые содержат мои файлы .cpp и .h соответственно. Мой любимый редактор vim, но мне еще предстоит найти хороший способ быстрого переключения между исходными и заголовочными файлами. Например, я могу отредактировать

~/ Рабочее пространство / MyProject / включить / MyProject / ядро / Utils / coolutil.h

и решить, что теперь мне нужно внести небольшое изменение в

~/ Рабочее пространство / MyProject / SRC / MyProject / ядро / Utils / coolutil.cpp.

Есть ли удобный и эргономичный способ быстрой обработки таких ключей в (g)vim? Мой текущий подход заключается в том, чтобы держать два дерева NERD открытыми, один для src/ и один для include/, хотя я чувствую, что должен быть менее громоздкий подход.

2 ответа2

3

Альтернативный плагин a.vim решает эту проблему. Это необходимо при программировании на C или C++.

1

Эта функция может делать то, что вы хотите. Поместите это в ваш ~/.vimrc или в плагин. Предполагается, что все ваши файлы .cpp и .h находятся в параллельных каталогах, как в вашем примере.

function! OpenOther()
    if expand("%:e") == "cpp"
        exe "split" fnameescape(expand("%:p:r:s?src?include?").".h")
    elseif expand("%:e") == "h"
        exe "split" fnameescape(expand("%:p:r:s?include?src?").".cpp")
    endif
endfunction

nmap ,o :call OpenOther()<CR>

Если у вас открыт файл .cpp или .h, введите ,o чтобы открыть другой в разделенном окне.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .