Я создал следующую команду, которая позволяет делать
:E /pattern/replace
для перехода к файлу с текущим именем файла и замены pattern
на replace
Например, если ваши тестовые файлы находятся в /test/code.js
, а ваши файлы src в /src/code.js
, вы можете написать следующую команду:
command! -nargs=* Es :call EditSubstitute("/test/src")
command! -nargs=* Et :call EditSubstitute("/src/test")
чтобы получить команду :Es
для перехода из тестового файла в исходный файл и команду :Et
для перехода из исходного файла в тестовый файл.
Вот функция, которая делает это:
function! EditSubstitute(args)
if (len(a:args))<2
return
endif
let s:delimiter = (a:args[0])
let s:split = split(a:args,s:delimiter,1)[1:]
let s:fullpath = expand('%:p')
let s:bar = substitute(s:fullpath, s:split[0], s:split[1], "")
echo (s:bar)
silent execute('edit '.s:bar)
endfunction
command! -nargs=* E :call EditSubstitute(<q-args>)