Como posso fazer com que o vim mostre a classe e o método atuais que estou editando

15

Alguém sabe se é possível (ou sabe de um script ou plugin existente do vim) que pode criar uma "barra de status" que mostra o nome da classe atual e o método (ou função) que estou editando?

Estou imaginando que ele seria conectado ao analisador de sintaxe do tipo de arquivo do buffer atual e exibirá uma trilha de navegação para mostrar o que você está editando no momento. Eu não conheço o vimscript o suficiente para sugerir mais do que isso, mas se ainda não existem boas soluções, posso começar a invadir uma delas; portanto, sugestões sobre por onde começar também são bem-vindas!

dcrosta
fonte

Respostas:

7

Este script coloca o nome da função atual na barra de título e / ou na linha de status. Ele usa ctags para gerar uma lista de tags para o arquivo atual e assume que a tag que precede a localização do cursor é o nome da função atual. Como ele usa ctags, ele pode ser personalizado para trabalhar com diferentes idiomas, até arquivos de texto estruturados. Funciona bem na prática, mas tem algumas limitações. Se nada mais, pode dar-lhe um ponto de partida para hackers.

garyjohn
fonte
6

Isso funcionará se você instalar os plugins de linha aérea e tagbar . Esses dois plugins se integram automaticamente e você obtém a função atual exibida na barra de status. Se você deseja ter a hierarquia completa de objetos (por exemplo, classe + método), precisará configurá-la em seu arquivo .vimrc:

let g:airline#extensions#tagbar#flags = 'f'  " show full tag hierarchy

Pode ser necessário configurar o arquivo de tags da barra de tags para identificar a posição atual do código, se você ainda não estiver usando ctags. Se você ainda não sabe disso, aqui está uma breve introdução às ctags .

Karl Bartel
fonte