Faire en sorte que Vim affiche TOUS les espaces blancs en tant que personnage

772

Je ne trouve pas de moyen de faire en sorte que Vim affiche tous les espaces blancs en tant que personnage. Tout ce que j'ai trouvé concerne les tabulations, les espaces de fin, etc.

mtk
la source
14
J'essaie également de résoudre exactement ce problème. S'il vous plaît, si vous rencontrez cela, évitez de faire une autre réponse impliquant :set list. Cela ne répond pas à notre question. (Pour les autres arrivants: la réponse de mrucci ci-dessous est utile, mais pas vraiment une vraie solution .)
ELLIOTTCABLE
1
Pour tous ceux qui disent que les espaces sont visibles avec listet listcharsconsidèrent qu'un espace suit directement un onglet. Ce serait presque invisible dans cette situation. Je suis d'accord que vous pouvez attraper la plupart des situations, mais ce serait bien d'avoir une mise en évidence appropriée de tous les espaces.
Kevin Cox
11
Pour les nouveaux visiteurs: cela est résolu dans les nouvelles versions de vim! Voir la réponse de brettanomyces ci-dessous .
ELLIOTTCABLE
1
Connexes (mais pile de différences): vi.stackexchange.com/questions/422/…
Pureferret

Réponses:

693

Comme d’autres l’ont dit, vous pouvez utiliser

:set list

qui, en combinaison avec

:set listchars=...

afficher des caractères invisibles.
Maintenant, il n'y a pas d'option explicite que vous pouvez utiliser pour afficher les espaces, mais dans listchars, vous pouvez définir un caractère à afficher pour tout MAIS les espaces. Par exemple, le mien ressemble à ceci

:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<

donc, maintenant, après avoir utilisé

:set list

tout ce qui n'est pas explicitement montré comme autre chose, est alors, vraiment, un vieil espace tout simple.

Comme d'habitude, pour comprendre comment ça listcharsmarche, utilisez l'aide. Il fournit d'excellentes informations sur les caractères pouvant être affichés (comme l'espace de fuite, par exemple) et comment le faire:

:help listchars

Il pourrait être utile d'y ajouter une bascule afin que vous puissiez voir facilement les modifications en cours d'édition (source: VIM: set list! Comme bascule dans .vimrc ):

noremap <F5> :set list!<CR>
inoremap <F5> <C-o>:set list!<CR>
cnoremap <F5> <C-c>:set list!<CR>
Tour
la source
4
"Tout ce qui n'est pas explicitement montré comme autre chose"? Essayez les espaces unicode de la plage U + 2000..U + 200A. Si la police à largeur fixe les prend en charge, ils seront affichés comme un espace 0x20 normal.
ZyX
2
@ZyX - Je ne prenais pas tout l'Unicode, mais l'ensemble de caractères plutôt courant utilisé. Si vous n'êtes pas satisfait de la réponse, n'hésitez pas à suggérer des améliorations.
Tour
20
@ckarbass -: ensemble invlist
Rook
Bon conseil! Je recommande de mettre la ligne set listchars dans le .vimrcfichier, afin que cette jolie façon d'afficher des caractères invisibles puisse être facilement activée :set listà tout moment (sans googler cette page à nouveau).
Melebius
8
@ckarbass De la même manière que vous basculez n'importe quoi dans vim - en ajoutant un! jusqu'à la fin. Alors ça devient: set list!
275

Depuis le patch 7.4.710, vous pouvez désormais définir un personnage à afficher à la place de l'espace à l'aide de listchars!

:set listchars+=space:␣

Ainsi, pour afficher TOUS les caractères d'espace blanc en tant que caractère, vous pouvez procéder comme suit:

:set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
:set list

Discussion sur la liste de diffusion: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/pjmW6wOZW_Q

Brett Y
la source
2
C'est assez cool, mais je me demande pourquoi le personnage eol ne se colore pas différemment, contrairement aux autres.
CMCDragonkai
3
J'ai essayé cela et j'ai eu une erreur au début. Il s'est avéré que "l'espace" n'était pas une option valide dans la version légèrement plus ancienne de gvim que j'utilisais. La mise à niveau de mon gvim a résolu mon problème. Pour les autres qui obtiennent une erreur, tapez :help listcharspour vérifier si «espace» est une option valide pour «listchars». Si ce n'est pas le cas, mettez à niveau votre vim vers le patch @brettanomyces spécifié. Ou laissez simplement "espace" hors de la commande set si vous ne voulez pas voir les espaces.
Niko Bellic
4
J'utilise le point central d'Unicode (U + 00B7) pour le caractère espace ( space:·), car il ressemble à MS Word, Notepad ++, etc.
Dinei
1
@ user5359531 essayez <ctrl-v> u2334 pour saisir le caractère de boîte ouverte unicode (␣). Voir sanctum.geek.nz/arabesque/special-characters-in-vim pour plus de détails
Brett Y
3
Tapez <C-K>.Mvim pour ·. Voir :h digraphpour plus de détails.
johnchen902
252

:set list autoriser.

:set nolist pour désactiver.

Marcin
la source
11
Merci de nous avoir montré comment basculer entre les modes. On pourrait penser que d'autres réponses avancées pourraient enseigner cela.
Jonathan Komar
1
oui c'est utile. Je souhaite que ce soit la meilleure réponse car j'ai trouvé cette réponse moi-même seulement pour constater qu'elle était déjà sur le site, juste hors de vue.
Ejoso
8
: set list!c'est mieux :)
skippr
@Skippr Dans quelle mesure? C'est le même nombre d'appuis sur les touches, sauf que Shiftet !sont plus difficiles à taper que no. Si vous le mettez dans votre fichier .vimrc, je conviens que le formulaire d'exclam est plus facile à lire.
Dan Bechard
7
@Dan Si vous souhaitez activer et désactiver cette fonction dans un délai relativement court, vous :set list!le ferez sans que vous ayez à entrer nolist. Le fait !simplement le contraire de tout ce qui est actuellement défini. Je l'utilise tout le temps surtout avec :set paste!. Je déteste appuyer sur la touche fléchée pour trouver :set pasteou :set nopastelol
skippr
188

Je pense que d'autres réponses ici sont plus complètes, mais j'ai pensé partager une astuce que j'utilise habituellement pour différencier visuellement les tabulations et les espaces:

:syntax on
:set syntax=whitespace

Ce sont des règles de coloration syntaxique pour le langage de programmation Whitespace espaces - les onglets s'affichent en vert et les espaces en rouge. :)

Peut être combiné avec :set listcomme mentionné par de nombreuses autres réponses, bien que les onglets s'affichent alors comme ^ I sans voyant vert, mais les espaces s'affichent en rouge.

Eliot
la source
7
J'aime celui-ci, il est assez intelligent et se sent mieux que la plupart des autres réponses. Ce n'est pas vraiment une solution utilisable en permanence.
ComputerDruid
4
Je préfère les méthodes plus conventionnelles, mais j'aime ça pour l'inventivité.
Sietse van der Molen
28
Je savais que la langue serait utile pour quelque chose .
Dan Bechard
1
Cela vous dérange-t-il de créer un lien vers le fichier de syntaxe .vim que vous utilisez pour mettre en surbrillance
SeldomNeedy
2
@SeldomNeedy vous ne devriez rien télécharger, les règles de mise en évidence des espaces blancs sont livrées avec Vim depuis des années. Ils devraient essentiellement être intégrés, sauf si vous utilisez une version étrange ou vraiment ancienne de Vim.
Eliot
91

:set listaffichera tous les espaces en tant que personnage. Tout sauf un espace sera différent de son état normal, ce qui signifie que si vous voyez toujours un vieil espace ordinaire, c'est vraiment un vieil espace ordinaire. :)

Éther
la source
35
Désactivez cette option avec:set nolist
Greg K
6
Que faire si vous voulez voir le caractère espace, comme dans Sublime Text 2 avec "show whitespace" on? Je l'ai trouvé vraiment utile.
Olical
Pas ce pour quoi je suis venu ici mais très utile. Merci.
harperville
4
Les options avec non peuvent également être basculées !à la fin:set list!
baldrs
J'utilise une doublure :se hls | /\_spour cela. Obtient tout tandis set listqu'ignore les espaces. De nouveau avec :se nohls. Détails à ce sujet sur ce post: albertech.blogspot.com/2015/02/…
pot
73

Si vous définissez:

:highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none

puis effectuez une recherche d'espace, chaque caractère d'espace sera affiché comme un caractère de soulignement.

Vous pouvez utiliser cette commande dans une fonction pratique qui bascule le "soulignement" des espaces.

set hls
let g:HLSpace = 1
let g:HLColorScheme = g:colors_name
function ToggleSpaceUnderscoring()
    if g:HLSpace
        highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none
        let @/ = " "
    else
        highlight clear
        silent colorscheme "".g:HLColorScheme
        let @/ = ""
    endif
    let g:HLSpace = !g:HLSpace
endfunction

Mappez la fonction à une touche de raccourci avec:

nmap <silent> <F3> <Esc>:call ToggleSpaceUnderscoring()<CR>

NB: Définissez la fonction dans vimrc après avoir défini le schéma de couleurs.

mrucci
la source
1
Eh bien, c'est un peu un hack, mais c'est plus proche qu'autre chose jusqu'à présent. Bounty décerné! : D
ELLIOTTCABLE
45

Selon vos règles de syntaxe pour le tampon actuel, quelque chose comme ça pourrait fonctionner:

:syn match WhiteSpace / / containedin=ALL conceal cchar=Æ
:setl conceallevel=2 concealcursor=nv

Cela nécessite un vim 7.3 avec une fonction + dissimulation

Mise à jour 24/10/2014 Pour développer un peu plus à ce sujet. Il est bien sûr possible de définir des surlignages pour les caractères masqués.

  • Vous pouvez configurer l'apparence des caractères cachés. Pour la mise en surbrillance, vous devez configurer au moins une fois le groupe de mise en surbrillance "Dissimuler" (voir l'aide sur :h hl-ConcealCeci peut être fait dans votre schéma de couleurs et vous n'avez pas besoin de le reconfigurer à nouveau. Mais cela affecte tous les caractères masqués (par exemple si votre le script de syntaxe masque quelques éléments supplémentaires, ils seront affichés comme vos caractères d'espace blanc. Cela pourrait ressembler à ceci:

    :hi Conceal ctermfg=7 ctermbg=NONE guifg=LightGrey guibg=NONE

  • Il semble y avoir une particularité que Vim ne mettra pas en évidence les espaces, si le script de syntaxe utilise le skipwhitemot - clé. Il n'y aura pas de solution (peut-être que ce sera corrigé, j'ai posté un patch )

  • Il semble y avoir un patch flottant, qui permettra de personnaliser l'apparence des espaces en listmode. Le dernier en date de la rédaction semble être celui-ci . (Cela signifie que vous devez créer votre propre Vim pour l'utiliser).
  • Les options locales conceallevelet concealcursorsont des fenêtres. Cela signifie qu'ils peuvent être différents dans différentes fenêtres (et seront éventuellement également définis par des plugins de type de fichier ou d'autres scripts de plugin).
  • Les groupes de coloration syntaxique doivent être exécutés chaque fois qu'un fichier de définition de syntaxe est rechargé. Cela pourrait être fait en utilisant une BufWinEnterou éventuellement une Syntaxou même une FileTypeautocommande. (Je n'ai pas testé lequel fonctionne réellement).

Les deux derniers éléments signifient que vous devrez configurer des autocommandes qui réinitialisent les règles de syntaxe et les options correspondantes. Pour le premier, on peut vouloir configurer la mise en évidence à l'aide d'unColorScheme autocommande (de sorte que les caractères cachés soient toujours les mêmes, indépendamment de ce qu'un jeu de couleurs configure réellement). Pour une solution complète, regardez dans la réponse romainl, qui devrait vous donner un début. Si vous configurez une fonction, vous pouvez facilement configurer une commande à bascule pour activer ou désactiver l'affichage de la surbrillance spéciale.

Mise à jour 26/10/2014 J'ai créé un plugin à partir de cette question.

Mise à jour 22/04/2015 Un correctif a été inclus dans Vim qui rend cela possible en utilisant l' listoption. Simplement réglé set list listchars+=space:␣ Cela fonctionne à partir de Vim 7.4.711

Christian Brabandt
la source
Cela fonctionne très bien! Comment cela peut-il être ajouté .vimrc?
Eric Martindale
1
Comme cela fonctionne sur le tampon actuel, vous devrez probablement envelopper cela dans une autocommande. BufEnter ou même la syntaxe automatique de la syntaxe pourrait fonctionner pour vous:
Christian Brabandt
3
Æest un étrange choix de personnage pour cela, pourquoi pas ·?
Marius Gedminas
1
C'est en fait la bonne réponse. Avez-vous des idées sur la façon d'ajouter une coloration syntaxique appropriée à ce personnage? Je préférerais que ce soit un très délavé ·
frappe aérienne
@ChristianBrabandt, vous avez un tas de fichiers liés à nrrwrgn qui polluent votre dépôt.
romainl
31

J'utilise ceci

/\s
:set hlsearch

pour mettre en valeur les espaces blancs. Il recherche tous les espaces blancs, puis active la surbrillance pour les faire ressortir. Cependant, il n'imprime pas de caractère spécial.

Benedikt Köppel
la source
Solution la plus simple à mon humble avis. Super jumelé avec une commande pour effacer la recherche (j'utilise nnoremap <leader><space> :noh<cr>)
Lenna
24

Si par espaces, vous entendez le caractère '', ma suggestion serait simplement une recherche / remplacement. Comme les autres l'ont laissé entendre, set listremplace les caractères non imprimables par un caractère visible configuré dans listchars.

Pour afficher explicitement les espaces comme un autre caractère, quelque chose de similaire à celui ci-dessous devrait faire l'affaire:

:%s/ /█/g

Annulez ensuite la modification pour revenir en arrière.

(pour obtenir le █ j'appuie sur cette séquence de touches exacte: :%s/ /CTRL-KFB/g)

Randy Morris
la source
2
J'aime mieux que les autres réponses, cela ressemble à l'inverse de :set listmoi, changeant le caractère visible ('espace') en _non priting_ (??). Je me demande si on peut utiliser cette correspondance interne, par exemple, :match MyBlackBlockChar "appropriate_regexcela devrait faire l'affaire, non?
Sudhi
Les autres réponses sont utiles, mais c'est la première qui répond réellement à la question +1 de OP
Alexx Roche
1
Ou :%s/\s/█/gpour tous les espaces. De :set hlsearchplus , plus :&s/\s//gnpourrait être utile.
16

Pour mettre en évidence des espaces, recherchez-le simplement:

/ <espace>

Remarques:

  • <espace> signifie simplement taper le caractère espace.
  • Activez la mise en surbrillance des résultats de recherche avec: set hlsearch

    Pour mettre en surbrillance les espaces et les tabulations:

    / [<space> <tab>]

    Un moyen rapide de supprimer les points forts est de rechercher autre chose: / asdf

    (tapez simplement une courte liste de caractères aléatoires)

  • vimmer
    la source
    1
    C'est la même chose que la réponse publiée 3 ans plus tôt. De plus, noh est plus rapide que / asdf pour mettre en surbrillance le texte. Ou vous pouvez même définir f1 sur: non étant donné que vous l'utiliserez probablement souvent.
    @DrEval En supposant que vous faites référence à la réponse de Benedikt Köppel , il est en fait subtilement différent /<space>vs /\s. Je pense qu'il n'est pas évident et plus rapide d'utiliser la suggestion ici.
    icc97
    14

    Le code ci-dessous est basé sur la réponse de Christian Brabandt et semble faire ce que l'OP veut:

    function! Whitespace()
        if !exists('b:ws')
            highlight Conceal ctermbg=NONE ctermfg=240 cterm=NONE guibg=NONE guifg=#585858 gui=NONE
            highlight link Whitespace Conceal
            let b:ws = 1
        endif
    
        syntax clear Whitespace
        syntax match Whitespace / / containedin=ALL conceal cchar=·
        setlocal conceallevel=2 concealcursor=c
    endfunction
    
    augroup Whitespace
        autocmd!
        autocmd BufEnter,WinEnter * call Whitespace()
    augroup END
    

    Ajoutez ces lignes à votre ~/.vimrcet commencez une nouvelle session Vim pour voir la magie encore imparfaite se produire.

    N'hésitez pas à modifier les couleurs par défaut et à masquer le caractère.


    Attention: quelque chose dans le *FuncBodygroupe de syntaxe dans plusieurs langues empêche le point central de s'afficher. Je ne sais pas (encore?) Comment rendre cette solution plus fiable.

    romainl
    la source
    C'est ce que je voulais dire par «selon le groupe de syntaxe». Je soupçonne que c'est un problème avec les mots clés syn en combinaison avec le drapeau skipwhite.
    Christian Brabandt
    @ChristianBrabandt, oui, je ne pouvais pas aller au-delà de ce que vous aviez déjà fait en le rendant "automatique".
    romainl
    1
    Oui, c'est l' skipwhiteargument dans les règles de syntaxe, qui empêche le groupe de syntaxe de correspondre (bien qu'il devrait être autorisé à être contenu dans tous les groupes).
    Christian Brabandt
    Existe-t-il un moyen de faire fonctionner cela correctement avec les guides de retrait retrait, ce qui ajoute du contexte à l'indentation? Je soupçonne qu'il s'agit de ne pas remplacer la couleur d'arrière-plan, mais cela ne semble pas anodin.
    Mike
    Comment désactiver la même chose lorsque la mise en évidence des espaces blancs n'est pas requise? Vous recherchez une sorte de commande à bascule courte.
    yuvaeasy
    11

    J'ai été frustré par toutes les autres réponses à cette question, car aucune d'entre elles ne met en valeur le caractère spatial de manière utile. Afficher les espaces sous forme de caractères serait particulièrement utile pour les langues au format blanc, où le mélange des tabulations et des espaces est dangereux.

    Ma solution est d'afficher des tabulations et de souligner plusieurs espaces. Il emprunte à la réponse de mrucci et à ce tutoriel . Parce qu'il utilise la coloration syntaxique, il est persistant:

    set list listchars=tab:\|\ 
    highlight Whitespace cterm=underline gui=underline ctermbg=NONE guibg=NONE ctermfg=yellow guifg=yellow
    autocmd ColorScheme * highlight Whitespace gui=underline ctermbg=NONE guibg=NONE ctermfg=yellow guifg=yellow
    match Whitespace /  \+/
    

    En utilisant cela, les onglets sont affichés en tant que |et les espaces en tant que _, ce qui rend très facile de savoir quand je mélange des styles de code.

    Le seul inconvénient que j'ai trouvé est que cet extrait de code n'ajuste pas la couleur d'arrière-plan pour correspondre au contexte (comme dans un commentaire).

    Wylie
    la source
    8

    toutes les réponses ci-dessus tentent de rendre les espaces visibles depuis vim. Si vous insistez vraiment pour avoir des espaces visibles sous forme de points, il existe une autre approche ...

    Si cela ne peut pas être fait dans vim, changez entièrement votre police. J'ai copié la police Ubuntu One Mono et l'ai modifiée à l'aide de FontForge. N'oubliez pas de changer le nom complet de la police, sa famille, sa famille préférée, sa compatibilité complète (dans FontFoge, c'est sous les noms TTF dans les informations sur la police), afin de l'avoir comme police distincte. Modifiez simplement le caractère espace pour avoir un point au milieu et enregistrez la police dans ~ / .fonts Maintenant, vous pouvez l'utiliser pour votre gvim ou tout le terminal ... J'ai copié le "!" , a supprimé la ligne et déplacé le point au milieu. Cela a pris un peu plus de 5 minutes ...

    Remarque: la modification du caractère d'espace (0x20) entraîne l'inconvénient d'avoir des points sur tout l'écran vim ... (mais cela séparera les espaces des tabulations ...)

    chef
    la source
    2
    Cela ressemblait à une très bonne approche jusqu'à ce que je lise la note sur le remplissage de tout l'écran avec des points. : /
    friederbluemle
    3
    Points pour la créativité! :-)
    jpaugh
    7

    Je n'ai pas trouvé exactement ce que je voulais des réponses existantes. Le code ci-dessous mettra en évidence tous les espaces de fin en rouge vif. Ajoutez simplement ce qui suit à votre.vimrc

    highlight ExtraWhitespace ctermbg=red guibg=red
    match ExtraWhitespace /\s\+$/
    autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
    autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
    autocmd InsertLeave * match ExtraWhitespace /\s\+$/
    autocmd BufWinLeave * call clearmatches()
    
    thedanotto
    la source
    5
    :match CursorLine /\s\+/
    

    évite le bit "vous devez rechercher des espaces pour les faire apparaître", mais afaict ne peut pas être configuré pour faire des choses non éclairantes sur les espaces. CursorLine peut être n'importe quel groupe de mise en évidence et dans le thème par défaut, c'est un simple soulignement.

    ldrg
    la source
    Je ne peux pas faire la différence entre les tabulations et les espaces en utilisant cette méthode, ce qui est dommage, mais j'adore que ce soit une ligne.
    Rustavore
    5

    J'aime utiliser des caractères spéciaux pour montrer les espaces, c'est plus clair. Même une carte à basculer est une caractéristique clé, pour une vérification rapide.

    Vous pouvez trouver ces fonctionnalités dans un ancien script vim non mis à jour depuis 2004:

    vim-scripts/[email protected]

    Grâce aux projets vim-scripts et vundle vous pouvez faire revivre ce plugin

    vim-scripts / cream-showinvisibles @ github

    Encore mieux, mes deux cents à ce sujet consistent à ajouter un raccourci configurable (au lieu de prédéfiniF4 )

    alors ajoutez ceci à ~ / .vimrc

    Plugin 'albfan/cream-invisibles'
    
    let g:creamInvisibleShortCut = "<F5>" "for my F4 goto next error
    

    installer le plugin sur vim

    :PluginInstall
    

    et voilà

    albfan
    la source
    5

    Pour couvrir les espaces blancs Unicode:

    set list
    set listchars=tab:│\ ,nbsp:·
    highlight StrangeWhitespace guibg=Red ctermbg=Red
    " The list is from https://stackoverflow.com/a/37903645 (with `\t`, `\n`, ` `, `\xa0` removed):
    call matchadd('StrangeWhitespace', '[\x0b\x0c\r\x1c\x1d\x1e\x1f\x85\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]')
    

    Le résultat:

    • seul l'espace ordinal (U + 0020) ressemble à un espace (" ")
    • l'onglet (U + 0009) ressemble à " │ " (deux caractères: un long tuyau puis un espace ordinal; ils sont gris encolorscheme murphy )
    • l'espace normal insécable (U + 00A0) ressemble à " ·" (un caractère; il est gris colorscheme murphy)
    • tout autre caractère d'espacement ressemble au rouge " "
    Kirill Bulygin
    la source
    1
    Modifié pour ajouter "ctermbg = Red" pour que mon terminal fonctionne pour la coloration. Personnellement, j'ai utilisé set listchars=tab:»\ ,space:·pour votre référence.
    Johnny Wong
    @JohnnyWong Merci pour la mise à jour. Il a été initialement rejeté par les critiques, mais j'ai vérifié le code, et cela (sans surprise) fonctionne à la fois pour gvimet vim.
    Kirill Bulygin
    1
    Réponse brillante, c'est exactement ce dont j'avais besoin pour capturer des espaces étroits (Hex 202f) qui ne sont pas rendus dans Safari et Firefox.
    Chris Kobrzak
    4

    Vous pourriez utiliser

    :set list
    

    pour vraiment voir la structure d'une ligne. Vous verrez explicitement des onglets et des sauts de ligne. Quand vous voyez un blanc, c'est vraiment un blanc.

    tangens
    la source
    3

    mettre en surbrillance la recherche

    :set hlsearch 
    

    en .vimrccela est

    et recherchez les onglets d'espace et les retours chariot

    / \|\t\|\r
    

    ou recherchez tous les caractères d'espacement

    /\s
    

    de recherche de tous les caractères non blancs (les caractères blancs ne sont pas affichés, vous voyez donc les caractères blancs entre les mots, mais pas les caractères blancs finaux)

    /\S
    

    pour afficher tous les caractères d'espace blanc à la fin - à la fin de la ligne

    /\s$
    
    MichaelMoser
    la source
    3

    Gardez ces hacks dans le .vimrc en tant que commentaires, donc dans le shell, simplement:

    echo '
      " how-to see the non-visible while spaces
      " :set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
      " set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
      " :set list
      " but hei how-to unset the visible tabs ?!
      " :set nolist
      ' >> ~/.vimrc
    
    Yordan Georgiev
    la source
    1
    :se list
    :se nolist
    

    :sesuffit, :setn'est pas nécessaire.

    sjas
    la source
    1

    vous pouvez également mettre en surbrillance les espaces (en remplaçant les espaces par un bloc):

    :%s/ /█/g
    

    (avant d'écrire défaire)

    Federico Bucchi
    la source
    1

    L'ajout de cela à mon .vimrc fonctionne pour moi. Assurez-vous simplement que vous n'avez rien d'autre en conflit ..

    autocmd VimEnter * :syn match space /\s/
    autocmd VimEnter * :hi space ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
    
    jroot
    la source