Vim이 모든 공백을 문자로 보이게 만들기


772

Vim이 모든 공백을 문자로 표시하는 방법을 찾을 수 없습니다. 내가 찾은 것은 탭, 후행 공백 등에 관한 것입니다.


14
또한이 문제를 정확하게 해결하려고합니다. 이 문제가 발생하면에 관련된 또 다른 응답을 삼가십시오 :set list. 그것은 우리의 질문에 대답하지 않습니다. (다른 사람들에게 : mrucci 의 답변은 도움이 될 수 있지만, 실제 해결책 은 아닙니다 .)
ELLIOTTCABLE

1
공간으로 볼 수 있습니다 말할 사람들의 모든 listlistchars공간 직접 탭을 다음과 같은 것을 고려하십시오. 이 상황에서는 거의 보이지 않습니다. 나는 대부분의 상황을 잡을 수 있지만 모든 공간을 적절히 강조 표시하는 것이 좋을 것에 동의합니다.
Kevin Cox

11
신규 방문자 : 최신 버전의 vim에서 해결되었습니다! 아래의 brettanomyces답변을 참조하십시오 .
ELLIOTTCABLE

1
관련 (그러나 차이 스택) : vi.stackexchange.com/questions/422/…
Pureferret

답변:


693

다른 사람들이 말했듯이, 당신은 사용할 수 있습니다

:set list

와 함께

:set listchars=...

보이지 않는 문자를 표시합니다.
이제 공백 을 표시 하는 데 사용할 수있는 명시적인 옵션이 없지만 listchars에서는 모든 문자를 표시하지만 문자를 공백으로 표시 할 수 있습니다. 예를 들어, 내 모습은 다음과 같습니다

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

이제는 사용 후

:set list

명시 적으로 다른 것으로 표시되지 않은 모든 것은 실제로 평범한 오래된 공백입니다.

평소와 같이 listchars작동 방식 을 이해 하려면 도움말을 사용하십시오. 표시 할 수있는 문자 (예 : 후행 공백) 및 수행 방법에 대한 유용한 정보를 제공합니다.

:help listchars

편집 도중 변경 사항을 쉽게 볼 수 있도록 토글을 추가하는 것이 도움이 될 수 있습니다 (source : VIM : set list!는 .vimrc의 토글로 ).

noremap <F5> :set list!<CR>
inoremap <F5> <C-o>:set list!<CR>
cnoremap <F5> <C-c>:set list!<CR>

4
"다른 것으로 명시 적으로 표시되지 않은 모든 것"? U + 2000..U + 200A 범위의 유니 코드 공간을 사용해보십시오. 고정 폭 글꼴이이를 지원하면 일반 0x20 공간으로 표시됩니다.
ZyX

2
@ ZyX-유니 코드 전체를 사용하지는 않았지만 사용중인 일반적인 문자 세트를 사용했습니다. 답변이 마음에 들지 않으면 언제든지 개선을 제안하십시오.
Rook

20
@ckarbass-: set invlist
루크

좋은 팁! set listchars 줄을 .vimrc파일 에 넣는 것이 좋습니다. 이 보이지 않는 문자를 표시하는이 예쁜 방법은 언제든지이:set list 페이지를 다시 검색하지 않고도 쉽게 사용할 수 있습니다 .
Melebius

8
@ckarbass vim에서 아무것도 토글하는 것과 같은 방법으로! 끝까지. 그래서 : 세트리스트가됩니다!

275

패치 7.4.710부터 listchars 를 사용하여 공백 대신 표시 할 문자를 설정할 수 있습니다!

:set listchars+=space:␣

따라서 모든 공백 문자를 문자로 표시 하려면 다음을 수행하십시오.

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

메일 링리스트에 대한 토론 : https://groups.google.com/forum/?fromgroups#!topic/vim_dev/pjmW6wOZW_Q


2
이것은 꽤 멋지지만, 왜 다른 사람들과 달리 eol 캐릭터가 다르게 색이 변하지 않는지 궁금합니다.
CMCDragonkai

3
나는 이것을 시도하고 처음에는 오류가 발생했습니다. 내가 사용하고 있던 약간 오래된 버전의 gvim에서 "space"는 유효한 옵션이 아닌 것으로 나타났습니다. 내 gvim을 업그레이드하면 문제가 해결되었습니다. 오류가 발생한 다른 사용자의 경우 :help listchars"space"가 "listchars"에 유효한 옵션인지 확인하려면 입력 하십시오. 그렇지 않은 경우 vim을 지정된 @brettanomyces 패치로 업그레이드하십시오. 또는 공백을 보지 않으려면 set 명령에서 "space"를 그대로 두십시오.
Niko Bellic

4
space:·MS Word, Notepad ++ 등과 같이 공백 문자 ( )에 유니 코드의 중간 점 (U + 00B7)을 사용합니다 .
Dinei

1
@ user5359531 <ctrl-v> u2334를 사용하여 유니 코드 열기 상자 문자 (␣)를 입력하십시오. 자세한 내용은 sanctum.geek.nz/arabesque/special-characters-in-vim 을 참조하십시오
Brett Y

3
<C-K>.M에 vim을 입력하십시오 ·. 자세한 내용 :h digraph을 참조하십시오.
johnchen902

252

:set list 사용하려면.

:set nolist 비활성화합니다.


11
모드 간 전환 방법을 알려 주셔서 감사합니다. 당신은 다른 고급 답변이 그것을 가르 칠 것이라고 생각할 것입니다.
Jonathan Komar

1
예, 이것이 도움이됩니다. 나는이 답변이 사이트에 이미 있다는 것을 알기 위해이 대답을 스스로 발견했을 때 그것이 최고의 대답 이었기를 바랍니다.
Ejoso

8
: set list!더 낫다 :)
skippr March

@Skippr 어떤 측정 기준으로? 이 점을 제외하고 키 입력의 같은 수의,의 Shift!모두 열심히보다 입력 할 수 있습니다 no. .vimrc에 넣으면 느낌표가 더 읽기 쉽다는 데 동의합니다.
Dan Bechard 2012 년

7
@Dan 비교적 짧은 시간에이 기능을 켜고 끄 :set list!려면을 입력하지 않아도됩니다 nolist. 는 !단순히 현재 설정되어있는 어떤 반대를한다. 나는 때 특히 이것을 항상 사용합니다 :set paste!. 나는 화살표 키를 누르 :set paste거나 :set nopastelol 를 싫어하는 것을 싫어합니다
skippr

187

여기에 다른 답변이 더 포괄적이라고 생각하지만 탭과 공백을 시각적으로 구분하는 데 일반적으로 사용하는 트릭을 공유한다고 생각했습니다.

:syntax on
:set syntax=whitespace

다음은 공백 프로그래밍 언어 의 구문 강조 규칙입니다. 탭은 녹색으로 표시되고 공백은 빨간색으로 표시됩니다. :)

:set list탭은 녹색 하이 글 라이트없이 ^ I로 표시되지만 공백은 빨간색으로 표시되지만 다른 많은 답변에서 언급 한대로 결합 할 수 있습니다 .


7
나는 이것을 좋아하고, 아주 영리하며, 다른 대부분의 대답보다 어떻게 든 기분이 좋아집니다. 그래도 항상 사용할 수있는 솔루션은 아닙니다.
ComputerDruid

4
더 전통적인 방법을 선호하지만 독창성을 위해 이것을 +1하고 있습니다.
Sietse van der Molen

27
나는 언어가 무언가에 도움이 될 것이라는 것을 알았다 .
Dan Bechard

1
당신이 하이라이트에 사용하고있는 .vim 구문 파일을 연결하는 신경 당신 마십시오
SeldomNeedy

2
@SeldomNeedy 당신은 아무것도 다운로드 할 필요가 없습니다, 공백 강조 규칙은 몇 년 동안 Vim과 함께 제공되었습니다. 이상하거나 실제로 오래된 버전의 Vim을 사용하지 않는 한 기본적으로 내장되어 있어야합니다.
Eliot

91

:set list모든 공백을 문자로 표시합니다. 공간을 제외한 모든 것은 일반 상태와 다르게 보일 것입니다. 즉, 평범한 오래된 공간이 여전히 보이면 실제로는 평범한 오래된 공간입니다. :)


35
와이 다시 해제:set nolist
그렉 K

6
Sublime Text 2와 같이 "show whitespace"가있는 공백 문자를 보려면 어떻게해야합니까? 정말 도움이되었습니다.
Olical

내가 여기에 온 것은 아니지만 매우 도움이되었습니다. 감사.
harperville

4
또한 옵션이없는 옵션 !은 마지막에 전환 할 수 있습니다 .set list!
baldrs

나는 이것을 위해 하나의 라이너를 사용합니다 :se hls | /\_s. set list공백을 무시하고 모든 것을 얻습니다 . 으로 다시 해제하십시오 :se nohls. 이 게시물에 대한 자세한 내용 : albertech.blogspot.com/2015/02/…
jar

73

설정 한 경우 :

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

그런 다음 공백을 검색하면 모든 공백 문자가 밑줄 문자로 표시됩니다.

공백의 "밑줄"을 토글하는 편리한 기능으로이 명령을 사용할 수 있습니다.

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

다음을 사용하여 기능을 바로 가기 키에 매핑하십시오.

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

NB : colorscheme을 설정 한 후 vimrc에서 함수를 정의하십시오.


1
글쎄, 그것은 약간의 해킹이지만, 지금까지 다른 것보다 더 가깝습니다. 현상금이 수여되었습니다! : D
엘리엇 트

45

현재 버퍼의 구문 규칙에 따라 다음과 같이 작동 할 수 있습니다.

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

+ 숨김 기능을 갖춘 vim 7.3이 필요합니다.

2014 년 10 월 24 일에 조금 확장했습니다. 물론 원뿔 문자에 대한 일부 강조 표시를 정의 할 수 있습니다.

  • 숨겨진 문자의 모양을 구성 할 수 있습니다. 강조 표시하려면 'Conceal'강조 표시 그룹을 한 번 이상 구성 :h hl-Conceal해야합니다 (색상 구성표에서이 작업을 수행 한 다음 다시 구성 할 필요는 없음 도움말 참조) . 그러나 숨겨진 모든 문자에 영향을줍니다 (예 : 구문 스크립트는 더 많은 항목을 숨기며 공백 문자로 표시됩니다).

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

  • 구문 스크립트가 skipwhite키워드를 사용하는 경우 Vim이 공백을 강조 표시하지 않는 것이 특이한 것 같습니다 . 주위에 방법이 없을 것입니다 (아마도 수정 될 것입니다. 나는 패치를 게시했습니다. )

  • 주위에 떠 다니는 패치가있는 것 같습니다 list. 이 모드 는 공백이 모드 에서 어떻게 보일지 사용자 정의 할 수있게 합니다. 글을 쓰는 시점의 최신 것이 이쪽 인 것 같습니다 . (이를 사용하려면 자신의 Vim을 빌드해야합니다).
  • conceallevelconcealcursor창 지역 옵션입니다. 즉, 창마다 다를 수 있습니다 (파일 유형 플러그인 또는 기타 플러그인 스크립트로 설정 될 수도 있음).
  • 구문 강조 파일은 구문 정의 파일을 다시로드 할 때마다 실행해야합니다. 이것은을 사용하여 수행 할 수있는 BufWinEnter가능성도 또는 Syntax또는 FileType자동 명령. (나는 실제로 어느 것이 작동하는지 테스트하지 않았습니다).

마지막 두 항목은 구문 규칙과 해당 옵션을 재설정하는 일부 자동 명령을 설정해야 함을 의미합니다. 첫 번째 경우 ColorScheme자동 명령을 사용하여 강조 표시를 설정하려고 할 수 있습니다 (숨겨진 문자는 실제로 색상 구성표의 설정에 관계없이 항상 동일하게 보이도록). 완전한 해결책을 찾기 위해 시작해야 할 romainl 답변을 살펴보십시오. 기능을 설정하면 토글 명령을 쉽게 설정하여 특수 강조 표시를 켜거나 끌 수 있습니다.

2014 년 10 월 26 일 업데이트이 질문 에서 플러그인 을 만들었습니다 .

업데이트 04/22/2015 Vim에는 list옵션을 사용하여이를 가능하게하는 패치가 포함되었습니다 . 간단히 설정 set list listchars+=space:␣ 이것은 Vim 7.4.711부터 작동합니다.


이것은 잘 작동합니다! 이것을 어떻게 추가 할 수 .vimrc있습니까?
Eric Martindale

1
현재 버퍼에서 작동하므로이를 자동 명령으로 래핑해야합니다. BufEnter 또는 심지어 구문 자동 명령이 당신을 위해 작동 할 수 있습니다 :
Christian Brabandt

3
Æ이것에 대한 이상한 선택이 ·아닌가?
Marius Gedminas

1
이것은 실제로 정답입니다. 이 캐릭터에 적절한 구문 강조 표시를 추가하는 방법에 대한 아이디어가 있습니까? 그것이 매우 퇴색했다면 나는 그것을 선호합니다 ·
공습

@ChristianBrabandt, 당신은 당신의 repo를 오염시키는 후행 nrrwrgn 관련 파일이 많이 있습니다.
romainl

31

나는 이것을 사용한다

/\s
:set hlsearch

공백을 강조 표시합니다. 모든 공백을 검색 한 다음 강조 표시가 활성화되도록합니다. 그러나 특수 문자 는 인쇄 하지 않습니다 .


가장 간단한 솔루션 imho. 검색을 지우라는 명령과 잘 nnoremap <leader><space> :noh<cr>
어울립니다

24

공백으로 ''문자를 의미하는 경우 내 제안은 검색 / 교체 일뿐입니다. 다른 사람들이 암시 한 것처럼 비 인쇄 문자를에서 구성된 보이는 문자로 set list변경 합니다 .listchars

공백을 다른 문자로 명시 적으로 표시하려면 아래와 비슷한 것이 트릭을 수행해야합니다.

:%s/ /█/g

그런 다음 변경 사항을 취소하여 다시 돌아가십시오.

(█을 얻으려면이 정확한 키 시퀀스를 눌렀습니다. :%s/ /CTRL-KFB/g)


2
나는 다른 답변보다 이것을 좋아한다. 이것은 :set list보이는 문자 ( 'space')를 _non priting_ (??)로 바꾼다. 예 :match MyBlackBlockChar "appropriate_regex를 들어 트릭을 수행 해야하는 내부 일치를 사용할 수 있는지 궁금 합니다.
Sudhi

다른 답변은 유용하지만 이것은 실제로 OP의 질문 +1에 답변하는 첫 번째 답변입니다.
Alexx Roche

1
또는 :%s/\s/█/g모든 공백. 또한 :set hlsearch더하기 :&s/\s//gn가 유용 할 수 있습니다.

16

공백을 강조 표시하려면 검색하십시오.

/ <space>

노트:

  • <space>는 공백 문자 만 입력하는 것을 의미합니다.
  • : set hlsearch를 사용하여 검색 결과 강조 표시 사용

    공백 및 탭을 강조 표시하려면 :

    / [<space> <tab>]

    하이라이트를 제거하는 빠른 방법은 다른 것을 검색하는 것입니다. / asdf

    (단순한 임의 문자 목록을 입력하십시오)


  • 1
    이것은 3 년 전에 게시 된 답변과 동일합니다. 또한 강조 표시되지 않은 텍스트의 경우 : noh가 / asdf보다 빠릅니다. 또는 자주 사용하게 될 것이므로 f1을 : noh로 설정할 수도 있습니다.

    당신을 가정 @DrEval는 참조하고 베네딕트 코펠의 대답 실제로는 미묘하게 다르다 /<space>/\s. 나는 제안을 여기에서 사용하는 것이 명백하고 빠르다고 생각합니다.
    icc97

    14

    아래 코드는 Christian Brabandt의 답변을 기반으로하며 OP가 원하는 것을하는 것 같습니다.

    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
    

    그 줄을 당신에게 추가 ~/.vimrc하고 새로운 Vim 세션을 시작하여 여전히 불완전한 마술이 일어나는 것을보십시오.

    기본 색상을 편집하고 문자를 숨기십시오.


    주의 사항 : *FuncBody여러 언어로 된 구문 그룹의 항목으로 인해 중간 점이 표시되지 않습니다. 그 솔루션을 더 안정적으로 만드는 방법을 모르겠습니다 (아직?).


    이것이 "구문 그룹에 따라"의 의미입니다. 이것이 skipwhite 플래그와 함께 syn 키워드에 문제가 있다고 생각합니다.
    Christian Brabandt

    @ChristianBrabandt, 예, "자동"으로 만드는 것 외에는 이미 한 일을 넘어 설 수 없었습니다.
    romainl

    1
    그렇습니다 skipwhite. 구문 그룹이 일치하지 않도록하는 구문 규칙 의 인수입니다 (모든 그룹에 포함될 수는 있지만).
    Christian Brabandt

    들여 쓰기에 배경을 추가하는 들여 쓰기 가이드 를 사용 하여이 작업을 훌륭하게 수행 할 수있는 방법이 있습니까? 나는 이것이 배경색을 재정의하지 않도록하는 것이 문제라고 생각하지만 이것은 사소하지 않은 것 같습니다.
    Mike

    공백을 강조 표시하지 않아도 동일한 기능을 비활성화하는 방법은 무엇입니까? 짧은 토글 명령을 찾고 있습니다.
    yuvaeasy

    11

    나는이 질문에 대한 다른 모든 대답에 좌절했습니다. 왜냐하면 그들 중 어느 것도 유용한 방법으로 공백 문자를 강조 표시하지 않기 때문입니다. 공백을 문자로 표시하면 탭과 공백을 혼합하는 것이 유해한 공백 형식의 언어에 특히 도움이됩니다.

    내 솔루션은 탭을 표시하고 여러 공백에 밑줄을 긋는 것입니다. 그것은 차용 mrucci의 대답이 튜토리얼 . 구문 강조를 사용하므로 영구적입니다.

    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 /  \+/
    

    이것을 사용하면 탭이로 표시 |되고 공백이로 표시되므로 _코드 스타일을 혼합 할 때 쉽게 알 수 있습니다.

    내가 찾은 유일한 단점은이 스 니펫이 컨텍스트와 일치하도록 배경색을 조정하지 않는다는 것입니다 (댓글에서와 같이).


    8

    위의 모든 대답은 vim 내에서 공백을 표시하려고합니다. 보이는 공간을 점으로 표시해야한다고 주장하는 경우 다른 접근법이 있습니다 ...

    vim에서 수행 할 수 없으면 글꼴을 완전히 변경하십시오. Ubuntu One Mono 글꼴을 복사하고 FontForge를 사용하여 편집했습니다. 별도의 글꼴로 사용하려면 글꼴의 전체 이름, 제품군, 기본 설정 제품군, 호환되는 전체 (글꼴 정보의 TTF 이름 아래에있는 FontFoge)를 변경해야합니다. 공백 문자를 편집하여 중간에 점을 표시하고 글꼴을 ~ / .fonts에 저장하십시오. 이제 gvim 또는 전체 터미널에 사용할 수 있습니다. "!" 문자, 줄을 제거하고 점을 중간으로 옮겼습니다. 5 분 이상 걸렸습니다 ...

    참고 : 공백 문자 (0x20)를 변경하면 전체 vim 화면에 점이 생기는 불편 함이 발생하지만 탭과 공백이 분리됩니다 ...


    2
    이것은 전체 화면을 점으로 채우는 것에 대한 메모를 읽을 때까지 정말 좋은 접근법처럼 들렸습니다. : /
    friederbluemle

    3
    창의성의 포인트! :-)
    jpaugh

    7

    기존 답변에서 원하는 것을 정확히 찾지 못했습니다. 아래 코드는 모든 후행 공백을 밝은 빨간색으로 강조 표시합니다. 에 다음을 추가하십시오..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()
    

    5
    :match CursorLine /\s\+/
    

    "공간을 검색하여 표시하려면"공간을 피해야하지만 공간에 빛을 비추 지 않는 작업을 수행하도록 구성 할 수는 없습니다. CursorLine은 모든 조명 그룹이 될 수 있으며 기본 테마에서는 일반 밑줄입니다.


    이 방법을 사용하여 탭과 공백의 차이점을 알 수는 없습니다. 너무 나쁘지만 하나의 라이너라는 것을 좋아합니다.
    Rustavore

    5

    공백을 표시하기 위해 특수 문자를 사용하는 것이 더 명확합니다. 토글 맵도 빠른 확인을위한 핵심 기능입니다.

    2004 년 이후 업데이트되지 않은 오래된 vim 스크립트에서이 기능을 찾을 수 있습니다.

    vim-scripts/cream-showinvisibles@vim.org

    프로젝트 vim 스크립트Vundle 덕분 에이 플러그인으로 다시 돌아올 수 있습니다.

    vim-scripts / cream-showinvisibles @ github

    더 나은이 내 두 센트가 추가하는 것입니다 설정 바로 가기를 (대신 미리 정의의 F4)

    ~ / .vimrc 에 이것을 추가하십시오

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

    vim에 플러그인 설치

    :PluginInstall
    

    그리고 당신은 간다


    5

    유니 코드 공백 문자를 포함하려면

    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]')
    

    결과:

    • 서수 공간 (U + 0020) 만 공백 ( " ") 처럼 보입니다.
    • 탭 (U + 0009)은 " │ " 처럼 보입니다 (두 문자 : 긴 파이프와 서수 공간, 회색으로 colorscheme murphy표시됨)
    • 일반 비 분리 공간 (U + 00A0)은 " ·"(한 문자, 회색으로 colorscheme murphy표시됨 )처럼 보입니다 .
    • 다른 공백 문자는 빨간색 " " 처럼 보입니다.

    1
    "ctermbg = Red"를 추가하여 터미널을 채색에 사용할 수 있도록 편집했습니다. 개인적으로 나는 set listchars=tab:»\ ,space:·당신의 참고를 위해 사용 했습니다.
    Johnny Wong

    @JohnnyWong 업데이트 해 주셔서 감사합니다. 처음에는 검토자가 거부했지만 코드를 확인했으며 (의외로) gvim및에 대해 작동합니다 vim.
    Kirill Bulygin

    1
    훌륭한 대답, 이것은 Safari와 Firefox에서 렌더링되지 않는 좁은 비 휴식 공간 (Hex 202f)을 캡처하는 데 필요한 것입니다.
    Chris Kobrzak

    4

    당신은 사용할 수 있습니다

    :set list
    

    실제로 선의 구조를 볼 수 있습니다. 탭과 줄 바꿈이 명시 적으로 나타납니다. 공백이 보이면 실제로 공백입니다.


    3

    검색 강조

    :set hlsearch 
    

    .vimrc

    스페이스 탭 및 캐리지 리턴 검색

    / \|\t\|\r
    

    또는 모든 공백 문자를 검색하십시오.

    /\s
    

    공백 문자가 아닌 모든 문자 검색

    /\S
    

    줄 끝에서 모든 후행 공백 문자를 표시합니다.

    /\s$
    

    2

    .vimrc에 해킹 을 주석으로 유지하십시오 . 쉘에서 간단히 다음을 수행하십시오.

    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
    

    1
    :se list
    :se nolist
    

    :se충분하고 :set필요하지 않습니다.


    1

    공백을 강조 표시 할 수도 있습니다 (공백을 블록으로 대체).

    :%s/ /█/g
    

    (쓰기 전에 취소)


    1

    내 .vimrc에 이것을 추가하면 나에게 효과적입니다. 갈등이 없는지 확인하십시오 ..

    autocmd VimEnter * :syn match space /\s/
    autocmd VimEnter * :hi space ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
    
    당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
    Licensed under cc by-sa 3.0 with attribution required.