Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Enabling markdown highlighting in Vim

Tags:

vim

markdown

People also ask

How do I enable syntax highlighting in vim?

After opening login.sh file in vim editor, press ESC key and type ':syntax on' to enable syntax highlighting. The file will look like the following image if syntax highlighting is on. Press ESC key and type, “syntax off” to disable syntax highlighting.

Does Markdown support highlighting?

Many Markdown processors support syntax highlighting for fenced code blocks. This feature allows you to add color highlighting for whatever language your code was written in. To add syntax highlighting, specify a language next to the backticks before the fenced code block.

How do I highlight keywords in vim?

Press 1 to highlight the current visually selected text, or the current word (if nothing is selected). Highlight group hl1 is used. Press 2 for highlight hl2 , 3 for highlight hl3 , etc. Press 0 to remove all highlights from the current visually selected text, or the current word.


About the native syntax highlight for markdown I think it only works for files with the extension .markdown by default.
I was having problems with markdown syntax highlight for my .md files.
I tried:

:set syntax=markdown

And it worked. So i included the following line in my .vimrc:

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

Now my vim have syntax highlight for my .md files.

BufFilePre is needed for :sav


This should work to disable the end-of-line space highlighting when using the plasticboy mkd plugin:

:syn clear mkdLineBreak

You could autocmd that for the necessary file extensions so that you needn't do it every time you load a markdown file.

Note that this specific highlight exists because Markdown treats lines ending with 2 or more space characters specially by inserting a <br>, so it is useful.

The plasticboy plugin uses TODO highlighting for this rule, which is a bit too much as it's designed to, by default, be really garish - yellow background - so that it stands out. You can make this less visually striking by changing that highlight rule. One quick way to do this would be something like:

:hi link mkdLineBreak Underlined

Now those end-of-line spaces will show up as underlined. Try linking to other highlight groups for something that may appeal to you more. Instead of using link you can get even more specific about those end-of-line spaces: for instance you could specify that they show up as just slightly lighter/darker than the normal background, using your own highlight command, specifying custom ctermfg, ctermbg, guifg, guibg settings.

As above, you could autocmd this to apply your specific settings.

For more information about link highlight groups, type: :help group-name and you'll see a list of groups that can be linked that themselves should helpfully be displayed using their current highlight rules. Also: :help highlight.


Native syntax highlighting

Native syntax highlighting for Markdown only works by default for the .markdown file extension.

The following line in .vimrc yields the best results for both vim and gvim:

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

Explanation:

1. Specify your Markdown flavour!

If you work with mainly one flavour of Markdown (e.g. Pandoc), be sure to mention this as well! Doing so, allows for mixing and matching of both Markdown- and Pandoc-specific Vim plug-ins. For example: I have found the vim-pandoc-syntax plug-in particularly suitable for my highlighting needs. Nevertheless, I use the more general vim-markdown-folding for Markdown folding.

By the way, only one flavour is allowed, separated by a dot, e.g.: filetype=markdown.pandoc

2. gvim requires BufFilePre

gvim requires an additional BufFilePre in the autocommand line for Markdown file type recognition with the Save As… :sav command.


In Tim's plugin the .md extension works only for README.md because filetype.vim specifies so.

" Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,README.md  setf markdown

If you don't like putting all of your configuration in ~/.vimrc, you can create ~/.vim/ftdetect/markdown.md (or its equivalent on Windows) with the following contents.

au BufNewFile,BufRead *.md setf markdown