Быстрое переключение между файлом и тестовым файлом в vim - PullRequest
0 голосов
/ 17 января 2019

Предположим, я редактирую

src/a/b/c/d.c

и я ожидаю, что тестовый файл для этого файла будет в

test/a/b/c/d.c.c

как быстро переключаться между файлами, следуя этому шаблону?

1 Ответ

0 голосов
/ 17 января 2019

a.vim и мой alternate-lite fork поддерживают опцию searchpath , где вы можете указать, как мы можем (быстро) переключаться между каталогами. Они более приспособлены для перехода между файлом заголовка и файлом определения, но должна быть также возможность добавить тестовые файлы - я не знаю, как это будет вести себя с .c.c VS .c на самом деле.

Учитывая шаблон, который вы нам дали, ванильный (не масштабируемый) подход будет выглядеть примерно так (не проверено):

function! s:alt_name(name) abort
    if a:name =~ '\.c\.c$'
        return substitute(a:name, '\v<test>/(.*)\.c', 'src/\1', '')
    elseif a:name =~ '\.c$'
        return substitute(a:name, '\v<src>/(.*\.c)', 'test/\1.c', '')
    else
        return a:name
    endif
endfunction

command! -nargs=0 Switch :exe ':e '.s:alt_name(expand('%'))

Конечно, если вам нужно перейти к окну, где буфер уже открыт, или разделен, или ... хорошо. Вот почему есть плагины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...