42556


最近vimを使い始めました。  
行中の半角空白を表示したいのですが、検索しても行末の空白を表示する方法しか見当たりません。  
行末ではない空白を表示する方法は無いのでしょうか。

検索などで表示させるのではなく、`listchars`で指定したときのように、違う文字・記号を割り当てる方法はないのでしょうか。


CC BY-SA 3.0
2018-03-20T04:39:14.103
42510
2018-03-22T04:39:39.087
2018-03-22T00:44:14.827
27813
27813
question
vim
vimで行末でない空白文字を表示する方法


簡単にやるならば

[code]

    :match Error / /
    
[/code]

とやるのが良いかと思います。


CC BY-SA 3.0
2018-03-20T05:08:26.777
42512
2018-03-20T05:08:26.777
440
42510
answer


"行末ではない空白を表示する"のは否定先読みでも可能です。

> / \%($)\@!

(\の前は半角スペースがはいってます。)  
行末のスペースにはヒットしません。


CC BY-SA 3.0
2018-03-20T07:27:50.740
42517
2018-03-20T08:52:13.713
2018-03-20T08:52:13.713
24823
24823
42510
answer


`v7.4.710`のパッチが当たっている環境であれば、`listchars`に`space`を指定してやれば任意の文字や記号に置き換えができるようです(以下は`_`に置き換える例)。

[code]

    set listchars+=space:_
    
[/code]

[本家SOの関連質問・回答(1)](https://stackoverflow.com/a/36374234/2322778)

* * *

上記のパッチが当たっていない環境でも、以下のような設定でハイライトさせる方法もありました。

[code]

    highlight WhiteSpace cterm=underline ctermfg=lightgreen ctermbg=4
    match WhiteSpace / \+/
    
[/code]

`ctermfg`,`ctermbg`はコンソールで利用する場合の設定なので、GUI(gvim)を利用する場合は`guifg`,`guibg`に置き換えてください。

[本家SOの関連質問・回答(2)](https://stackoverflow.com/a/40498439/2322778)


CC BY-SA 3.0
2018-03-22T01:50:15.530
42556
2018-03-22T04:39:39.087
2018-03-22T04:39:39.087
3060
3060
42510
answer