При работе с Go мне бы хотелось иметь возможность открывать соответствующий тестовый файл для каждого файла .go, с которым я работаю, и наоборот. Следующим форматом является foo.go соответствует foo_test.go . Я могу предположить, что если он существует, он всегда будет в одной папке. Мне все равно, если он открывается в буфере, вкладке или даже в текущем буфере, я просто хочу нажать кнопку и иметь возможность переключаться между ними. Как мне это сделать?

3 ответа3

3

Есть несколько плагинов, которые могут переключаться между файлами C/C++ .c и .h ; некоторые могут быть настолько настраиваемыми, чтобы иметь дело с вашим вариантом использования. Однако такое отображение (или команда) может быть легко определено, например, для <Leader>a:

:nnoremap <expr> <Leader>a ':edit ' . (expand('%:t:r') =~? '_test$' ? expand('%:s?_test??') : expand('%:r') . '_test.' . expand('%:e')) . '<CR>'

Он использует :help filename-modifiers для извлечения, сравнения и сборки команды :edit .

Выше приведено глобально для использования в ~/.vimrc ; если вы хотите это только для файлов Go, используйте :nnoremap <buffer> <expr> ... Затем либо prepend :autocmd Filetype go , и поместите это в ваш ~/.vimrc , или, поскольку это становится громоздким, когда вы добавляете сопоставления и другие настройки для различных типов файлов, поместите команды в ~/.vim/ftplugin/go_mappings.vim . (Это требует, чтобы у вас был :filetype plugin on .)

0

Чтобы найти решение этой проблемы, рассмотрите возможность использования моего форка файлов среды выполнения Go: https://github.com/AndrewRadev/vim-golang.

Он определяет :A Семейство команд (соответствующие определения здесь, изменение имени файла здесь).

По сути, это ответ Инго Карката, заключенный в плагин, так что читайте дальше :help filename-modifiers и следуйте его советам, безусловно, хороший путь.

-1

Я могу порекомендовать плагин vim-twitch для решения этой проблемы.

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