This drives me crazy, I do

:set ft=text

To see something, otherwise all the links disappear in markdown and quotes in JSON.

How do disable this once and for all?

  • 1
    Can you post a screenshot of what you mean? Also, while editing a markdown file, do :redir > foo, :hi (browse through all the highlight groups pressing space), :redir end, and add the contents of the newly created foo file here. – muru Apr 8 '16 at 9:25
  • "# _this_ **that**" will display as "# this that" – masukomi Jan 30 '17 at 16:40

(guessing here, please provide a screenshot/more information)

You may want to change your conceallevel setup:

:h 'conceallevel'
'conceallevel' 'cole'       *'conceallevel'* *'cole'*
            number (default 0)
            local to window
            {not in Vi}
            {not available when compiled without the |+conceal|
    Determine how text with the "conceal" syntax attribute |:syn-conceal|
    is shown:

    Value       Effect ~
    0       Text is shown normally
    1       Each block of concealed text is replaced with one
            character.  If the syntax item does not have a custom
            replacement character defined (see |:syn-cchar|) the
            character defined in 'listchars' is used (default is a
            It is highlighted with the "Conceal" highlight group.
    2       Concealed text is completely hidden unless it has a
            custom replacement character defined (see
    3       Concealed text is completely hidden.
  • 1
    Oh yeah, just set it to zero in config and that seems to fix it. Interesting that it is 0 by default, I guess some plugins change the settings. – firedev Apr 14 '16 at 2:22
  • 1
    It seems that conceallevel is reset every time you open a file. Any way to make it always stick with 0? – yktoo Apr 14 '17 at 12:05
  • In your vimrc? set conceallevel=2 – nobe4 Apr 14 '17 at 12:06
  • 3
    To answer my own question and maybe help anyone facing the same issue: I have the indentLine plugin installed, which forces conceallevel to be set to 2 by default for every file. This can be disabled with: let g:indentLine_setConceal = 0 – yktoo Sep 26 '17 at 8:01
  • 2
    g:indentLine_setConceal = 0 essentially makes it so the indentline plugin no longer works. I found let g:indentLine_fileTypeExclude = ['json'] worked better for me. – Matt Greer Nov 24 '17 at 18:20

If you are using the 'indentLine' plugin or other plugins that can change 'conceal' features in vim. It is because these plugin enables the Vim 'conceal' feature which automatically hides stretches of text based on syntax highlighting. This setting will apply to all syntax items. Specifically, in 'indentLine' plugin, it will overwrite "concealcursor" and "conceallevel" to:

let g:indentLine_concealcursor = 'inc'
let g:indentLine_conceallevel = 2

So, I change it to the following value in my .vimrc file:

let g:indentLine_setConceal = 2
" default ''.
" n for Normal mode
" v for Visual mode
" i for Insert mode
" c for Command line editing, for 'incsearch'
let g:indentLine_concealcursor = ""

another set is to let g:indentLine_concealcursor = "nv" which make the hidden text surround your cursor only show in 'insert' mode and 'visual' mode. Hope that can help you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.