Abra outro arquivo no vim baseado no nome do arquivo atual

0

Ao trabalhar com o Go, gostaria de poder abrir o arquivo de teste correspondente para cada arquivo .go com o qual estou trabalhando e vice-versa. O formato seguido é foo.go corresponde a foo_test.go . Posso supor que, se existir, estará sempre na mesma pasta. Eu não me importo se ele abre em um buffer, guia ou até mesmo no buffer atual, eu só quero pressionar um botão e ser capaz de alternar entre os dois. Como faço isso?

    
por placeybordeaux 21.03.2014 / 16:25

3 respostas

3

Existem alguns plug-ins que podem alternar entre arquivos C / C ++ .c e .h ; alguns podem ser configuráveis para lidar com seu caso de uso. Contudo, tal mapeamento (ou comando) pode ser facilmente definido, e. para <Leader>a :

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

Isso usa :help filename-modifiers para extrair, comparar e montar um comando :edit .

O acima é globalmente para uso em ~/.vimrc ; Se você quiser isso apenas para arquivos Go, use :nnoremap <buffer> <expr> ... Em seguida, prefixar :autocmd Filetype go e colocar isso em ~/.vimrc , ou, como isso fica difícil ao adicionar mapeamentos e outras configurações para vários tipos de arquivos, coloque os comandos em ~/.vim/ftplugin/go_mappings.vim . (Isso requer que você tenha :filetype plugin on .)

    
por 21.03.2014 / 16:47
0

Para uma solução alternativa ao problema, considere o uso de meus arquivos de tempo de execução Go: link .

Define a família de comandos :A (as definições relevantes são aqui , a modificação do nome de arquivo é aqui ).

É basicamente a resposta de Ingo Karkat, empacotada em um plugin, então ler em :help filename-modifiers e seguir seu conselho é definitivamente um bom caminho a seguir.

    
por 22.03.2014 / 14:01
-1

Eu posso recomendar o vim-twitch para resolver esse problema.

    
por 22.10.2015 / 13:15

Tags