Criando tags entre arquivos de remarcação semelhantes a: h

7

Uma das primeiras coisas que você aprende no vimtutor é seguir os links nos arquivos de ajuda do vim com Ctrl- ]. Estou interessado em criar meu próprio sistema de tags / links em arquivos arbitrários. Para o bem desta pergunta, digamos que estou criando uma espécie de lista TODO na remarcação.

Suponha que tenhamos o seguinte minifile:

TODO
=====
  1. Learn Vimscript the Hard Way    |hardway|

(some other things, maybe)


Complete Learn Vimscript the Hard Way
-------------------------------------  :hardway

(Some sort of details, etc.)

Então o objetivo seria colocar o cursor no primeiro |hardway|, pressionar algo semelhante a Ctrl- ]e ser transportado para a :hardwaytag localizada em outro local. Idealmente, isso poderia ocorrer se :hardwayestivesse em um arquivo diferente (mas talvez no mesmo diretório).

Atualmente, uso uma alternativa de baixa tecnologia. Em vez de |hardway|, eu teria algo como |hardway.md|, para que eu possa gfna "tag" e ser levado para o hardway.mdarquivo. Embora isso seja gerenciável, acho que deve ser possível (talvez até difícil) criar e manter meu próprio sistema de tags em tipos de arquivos arbitrários.

davidlowryduda
fonte
Dê uma olhada em ': h write-help`
Cyber ​​Oliveira
Desculpe: h help-writing
Cyber ​​Oliveira
@LeonardoConstantino A menos que eu esteja enganado, isso seria como literalmente integrar minha lista de tarefas ao sistema de ajuda do vim. Não estou interessado em digitar :h hardwaye ser levado para a minha entrada na hardwayqual é realmente um arquivo de ajuda. Ou talvez eu esteja entendendo mal sua sugestão? Perdoe-me, não tenho muita certeza.
Davidlowryduda

Respostas:

4

Eu implementei algo assim usando Ctags Exuberant e um .ctagsarquivo no diretório (também deve funcionar .ctagsno diretório inicial).

Você pode ler sobre o uso de Ctags com regex arbitrário, mas o essencial é que você poderá usar o mesmo Ctrl- ]para acessar essas tags.

O conteúdo do meu .ctags:

--langdef=markdown
--langmap=markdown:.md
--regex-markdown=/^#+\s*([^#]*)\s*#+$/\1/h,heading,headings/

Em seguida, execute ctags.

ctags -R

E você deve obter um arquivo chamado tagsque possui mapeamentos para todos os cabeçalhos de redução no ### HEADER ###formato.

Consulte :help tagspara obter mais informações sobre como navegar em tags (por exemplo, quando houver vários hits para uma tag).

bsmith89
fonte
abordagem ctags perguntou em: stackoverflow.com/questions/25742396/...
Ciro Santilli冠状病毒审查六四事件法轮功
1

VIM :finde gfsão impressionantes, eu os uso o tempo todo, eles dependem da configuração do vim pathe procuram por arquivos lá. O VIM também fornece configurações adicionais, suffixesaddque são uma lista de sufixos encontrados, tentarão adicionar aos nomes dos arquivos e procurá-los. por exemplo.) set suffixesadd+='.md'para trabalhar com arquivos de remarcação.

Dhruva Sagar
fonte