tablas vim

vim - tablas - markdown reader



¿Cómo hacer que Vim entienda que los archivos*.md contienen código Markdown y no código Modula-2? (2)

Esta pregunta ya tiene una respuesta aquí:

Cuando edito README.md que contiene el código Markdown en Vim y ejecuto :set filetype? comando, veo filetype=markdown . La sintaxis de Markdown está resaltada correctamente.

Pero cuando edito foo.md que contiene código Markdown en Vim y ejecuto :set filetype? comando, veo filetype=modula2 . La sintaxis de Markdown no está resaltada correctamente.

¿Qué debo agregar a mi ~ / .vimrc para que Vim entienda que foo.md o cualquier archivo con el nombre de extensión como .md es un archivo de reducción de marca y no un archivo de modula2?


Causa del problema.

Para entender qué script estaba configurando este tipo de archivo, ejecuté el siguiente comando después de editar foo.md.

:verbose set filetype?

Encontré la siguiente salida.

filetype=modula2 Last set from /usr/share/vim/vim74/filetype.vim

En /usr/share/vim/vim74/filetype.vim, encontré las siguientes líneas.

au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,README.md setf markdown au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.md,*.mi setf modula2

Estas líneas muestran que cuando se edita README.md, el tipo de archivo se establece en markdown pero al editar cualquier otro archivo con el nombre de extensión como .md, el tipo de archivo se establece en modula2 . En otras palabras, los archivos * .md se reconocen como código fuente Modula-2, pero se hace una excepción para que README.md se reconozca como código Markdown, quizás debido a la creciente popularidad de los archivos README.md en GitHub.

Solución

Agregue la siguiente declaración a ~ / .vimrc para set filetype=markdown filetype set filetype=markdown para todos los archivos .md.

autocmd BufNewFile,BufRead *.md set filetype=markdown

Esta declaración dice que al comenzar a editar un nuevo archivo que no existe o al comenzar a editar un nuevo búfer, después de leer el archivo en el búfer, si el archivo coincide con el patrón *.md , set filetype=markdown *.md set filetype=markdown .

Actualizar

En la versión actualizada de Vim que tengo ahora, encuentro que este problema ya no existe.

$ vim --version | head -n 2 VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 31 2015 23:36:07) Included patches: 1-488, 576 $ grep -E "markdown|modula2" /usr/share/vim/vim74/filetype.vim au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi setf modula2

El parche en ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.860 parece haber hecho este cambio. Sin embargo, estoy un poco confundido acerca de cómo estos cambios que parecen estar disponibles en el parche 860 están disponibles en mi versión de Vim que incluye los parches 1-448, 576 solamente.


La otra respuesta es correcta, pero incompleta. Para que esto funcione por igual con el comando Save As… :sav , se necesita extender el autocommand con BufFilePre :

autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown

También podría ser interesante especificar un sabor Markdown , como Pandoc :

autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown.pandoc

Tenga en cuenta que Vim actualmente permite especificar solo un sabor sin embargo.