
Go로 작업할 때 작업 중인 각 .go 파일에 해당하는 테스트 파일을 열 수 있고 그 반대의 경우도 가능했으면 합니다. 따르는 형식은 foo.go
에 해당합니다 foo_test.go
. 존재한다면 항상 같은 폴더에 있을 것이라고 가정할 수 있습니다. 버퍼, 탭 또는 현재 버퍼에서 열리는지 상관하지 않고 버튼을 누르고 둘 사이를 전환할 수 있기를 원합니다. 어떻게 해야 하나요?
답변1
.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> ...
그런 다음 앞에 추가 :autocmd Filetype go
하고 이를 에 넣거나 ~/.vimrc
, 다양한 파일 형식에 대한 매핑 및 기타 설정을 추가하면 다루기 어려워지므로 명령을 ~/.vim/ftplugin/go_mappings.vim
. (이를 위해서는 가 필요합니다 :filetype plugin on
.)
답변2
문제에 대한 드롭인 솔루션을 위해 Go 런타임 파일의 포크를 사용하는 것을 고려해 보십시오.https://github.com/AndrewRadev/vim-golang.
이는 :A
명령군을 정의합니다(관련 정의는 다음과 같습니다).여기, 파일 이름 수정은 다음과 같습니다.여기).
이는 기본적으로 Ingo Karkat의 답변이며 플러그인에 포함되어 있으므로 :help filename-modifiers
그의 조언을 읽고 따르는 것이 확실히 좋은 방법입니다.
답변3
플러그인을 추천해드릴 수 있어요vim-twitch이 문제를 해결하기 위해.