
使用 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> ...
Then 或 prepend :autocmd Filetype go
,並將其放入您~/.vimrc
的~/.vim/ftplugin/go_mappings.vim
. (這要求你有:filetype plugin on
。)
答案2
對於問題的直接解決方案,請考慮使用我的 Go 運行時檔案分支:https://github.com/AndrewRadev/vim-golang。
這基本上是 Ingo Karkat 的答案,打包在一個插件中,所以閱讀:help filename-modifiers
並遵循他的建議絕對是一個好方法。
答案3
我可以推薦這個插件vim 抽搐來解決這個問題。