O Vim não destaca a sintaxe dos links

1

Eu tenho um arquivo de marcação com a extensão .md como "Personal Note.md". Eu faço um link symbolik (soft) dele pelo comando ln -s no Linux como "Note". Eu abro o link com vim , ele rastreia com sucesso o arquivo original e o abre mas não o destaca, é o formato de arquivo de remarcação.

Para observar, ele destaca se eu renomei ou crie o link desde o início com a extensão .md , mas não é isso que quero fazer, não quero adicionar a extensão para o link criado para mantê-lo menor e neutro no olho do usuário.

    
por w17t 20.11.2016 / 19:16

3 respostas

0

Eu poderia achá-lo colocando a primeira linha do arquivo (vinculado):

vim: ft=markdown

É feio , mas faz o trabalho.

    
por 25.11.2016 / 17:34
2

Isso é complicado, pois nessa situação você prefere não ter uma extensão em seu symlink, e não há nenhuma maneira confiável que eu saiba para detectar automaticamente um arquivo de remarcação baseado em sua sintaxe (já que afinal ele é destinado a ser humano - legível sem renderização), então ftdetect está fora da imagem. No entanto, você tem algumas opções.

Se você tende a criar links simbólicos com nome semelhante para arquivos Markdown, é possível adicionar um autocommand para definir o tipo de arquivo ao ler esses arquivos:

" Your autocmds should be defined inside a group and cleared at the start so
" that they are not defined more than once if you happen to re-source your vimrc.
" See http://learnvimscriptthehardway.stevelosh.com/chapters/14.html

augroup MyAutoCmds
  autocmd!

  " If you have other files that you always want to use Markdown syntax, add them
  " after 'Note' below, comma delimited. Some other ideas could be README, AUTHORS,
  " CONTRIBUTING, COPYING, etc
  autocmd BufNewFile,BufRead Note setf markdown
augroup END

Ou você pode usar um modeline . Não acredito que exista uma sintaxe oficial para os comentários do Markdown, mas eu vi a maioria suportar comentários HTML básicos. Então, você pode acrescentar isso ao seu arquivo Markdown:

<!-- vim: set ft=markdown: -->

Veja :h modeline para os detalhes completos sobre esse recurso. N.B. isso não será exibido no Markdown renderizado, desde que a implementação suporte comentários, o que a maioria dos que eu vi realmente faz.

    
por 22.11.2016 / 03:07
1

Acho que infelizmente, sem a extensão, você terá que definir manualmente o syntax-type to markdown

:set syn=markdown  
    
por 21.11.2016 / 05:43