Respostas:
Você pode usar os comandos
:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
:set list
para mostrar todos os caracteres que não são espaços em branco. Portanto, os espaços são a única coisa que não aparece.
Se você também precisa absolutamente de espaços para serem marcados, tente algo menos agradável. Algo como
:%s/ /█/g
Substituirá todos os espaços por um caractere de bloco. Então você precisará desfazê-lo antes de escrever. Você pode remapear seu comando write do
cmap :w :%s/█/ /g<CR>:w
Apenas uma sugestão. Eu ainda não tentei isso.
:set listchars
comando e o configure como nada, depois chame novamente quando você sair do modo de inserção. Mas eu não sei o suficiente sobre mapas para fazer isso.
space:␣
funciona bem para mim: :set listchars=eol:$,tab:>-,trail:~,space:␣
No meu caso, eu tive que lutar nbsp ,
:set listchars=nbsp:☠,tab:▸␣
:set list
Você também pode usar ␣ em vez de ☠
Aqui está um exemplo em que a configuração do vim acima destaca os espaços "invisíveis estranhos" e, além disso, destaca as guias (cor vermelha porque eu estou usando o plugin vim de espaço em branco à direita)
:set list
. Isso pode obter tudo, exceto espaços.