
Cuando trabajo con Go, me gustaría poder abrir el archivo de prueba correspondiente para cada archivo .go con el que estoy trabajando, y viceversa. El formato que se sigue es foo.go
el correspondiente a foo_test.go
. Puedo asumir que si existe siempre estará en la misma carpeta. No me importa si se abre en un búfer, pestaña o incluso en el búfer actual, solo quiero presionar un botón y poder cambiar entre los dos. ¿Cómo hago esto?
Respuesta1
Hay algunos complementos que pueden cambiar entre C/C++ .c
y .h
archivos; algunos pueden ser tan configurables para adaptarse a su caso de uso. Sin embargo, dicho mapeo (o comando) se puede definir fácilmente, por ejemplo para <Leader>a
:
:nnoremap <expr> <Leader>a ':edit ' . (expand('%:t:r') =~? '_test$' ? expand('%:s?_test??') : expand('%:r') . '_test.' . expand('%:e')) . '<CR>'
Esto se utiliza :help filename-modifiers
para extraer, comparar y ensamblar un :edit
comando.
Lo anterior es globalmente para uso en ~/.vimrc
; Si desea esto solo para archivos Go, use :nnoremap <buffer> <expr> ...
Then anteponer :autocmd Filetype go
y colóquelo en su ~/.vimrc
o, como se vuelve difícil de manejar a medida que agrega asignaciones y otras configuraciones para varios tipos de archivos, coloque los comandos en ~/.vim/ftplugin/go_mappings.vim
. (Esto requiere que tengas :filetype plugin on
).
Respuesta2
Para una solución inmediata al problema, considere usar mi bifurcación de los archivos de tiempo de ejecución de Go:https://github.com/AndrewRadev/vim-golang.
Define la :A
familia de comandos (las definiciones relevantes sonaquí, la modificación del nombre del archivo esaquí).
Sin embargo, es básicamente la respuesta de Ingo Karkat, empaquetada en un complemento, por lo que leer :help filename-modifiers
y seguir sus consejos es definitivamente un buen camino a seguir.
Respuesta3
Puedo recomendar el complementovim-twitchpara abordar este asunto.