Abra otro archivo en vim según el nombre del archivo actual

Abra otro archivo en vim según el nombre del archivo actual

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.goel 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++ .cy .harchivos; 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-modifierspara extraer, comparar y ensamblar un :editcomando.

Lo anterior es globalmente para uso en ~/.vimrc; Si desea esto solo para archivos Go, use :nnoremap <buffer> <expr> ... Then anteponer :autocmd Filetype goy colóquelo en su ~/.vimrco, 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 :Afamilia 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-modifiersy seguir sus consejos es definitivamente un buen camino a seguir.

Respuesta3

Puedo recomendar el complementovim-twitchpara abordar este asunto.

información relacionada