Ter o VIM pulando para um ctag em uma guia existente

6

Eu tenho ctags configurados com minha instalação vim. Meu hábito é geralmente ter todos os arquivos relevantes em que estou trabalhando abertos em abas no vim de uma só vez. O "problema" é que, se eu usar Ctrl +] para pular para um ctag em um arquivo que estou editando, ele substituirá o buffer nessa guia, mesmo que eu tenha outra aba já aberta contendo esse símbolo. Seria muito melhor se apenas mudasse para essa aba e pulasse para o símbolo lá. Dessa forma, eu sempre teria uma relação de tabulação para arquivo de 1 para 1.

Eu notei no Changenotes para o plugin taglist.vim (que eu também uso) tem uma entrada que diz

1. Added support for jumping to a tag/file in a new or existing tab 
   from the taglist window (works only with Vim7 and above). 

No entanto, não consegui encontrar nada na documentação para Taglist (ou Ctags) sobre como realmente fazer isso.

Algum vim gurus pode me preencher? Obrigado!

    
por Adrian Petrescu 13.06.2010 / 18:27

1 resposta

2

Você pode fazer isso com :tab tag NAME_OF_TAG , mas isso não está mapeado para nada. Você pode remapear <Ctrl-]> para fazer isso da seguinte maneira no seu arquivo .vimrc:

:nmap <c-]> :tab tag <c-r><c-w><cr>

<c-r><c-w> irá pegar a palavra sob o cursor e <cr> é o último enter / carriage return para executar o comando.

EDIT: oh não, eu releio a pergunta. Isto irá abrir uma nova guia de cada vez, o que é uma merda !!

De acordo com a página de ajuda do taglist:

The following table lists the description of the keys that can be used in the taglist window.

t Jump to the tag in a new tab. If the file is already opened in a tab, move to that tab.

E, de fato, pressionar t no painel de tags faz isso, mas isso significa que você já precisava ter a tag visível no painel de tags. E isso também é um pouco manco ...

    
por 19.06.2010 / 16:14

Tags