2013-03-24 5 views
3

vim에서 /을 치고 $을 검색하면 모든 eol이 강조 표시됩니다. 그러나 내가 그들을 syntax match와 일치 시키려고하면 작동하지 않는 것 같습니다.vim에서 문법 일치로 EOL (end of line) 일치

function! ConcealNonText() 
    set conceallevel=1 
    set concealcursor=v 
    syntax match NonText /$/ conceal cchar=¶ 
endfunction 

augroup ConcealNonText 
    autocmd! 
    autocmd VimEnter * call ConcealNonText() 
augroup END 

숨겨진 문자로 에콜을 표시하려면 어떻게해야합니까? set list listchars을 사용할 수 있지만 그 중 일부는 visual side effects입니다.

+0

그럼 패턴이 '[\ n]'이어야합니다. 그럼에도 불구하고 더 나은 결과를 얻지 못합니다. – Saucier

답변

1

귀하의 요구 사항은 이메일 주소 대신 으로 표시됩니다. 비록 당신이 제시 한 코드가 아마도 가능한 해결책 일지 모르나 확실한 것은 아닙니다. Vim은 원하는 것을 성취 할 수있는 훨씬 간단한 방법을 제공합니다. 당신이 정말로해야 할 일은 검색 :h listchars입니다. 당신이 넣어되면

set list 
set listchars+=eol:¶ 

은 정력이 EOL 문자에 대한 문자 를 표시합니다 :

은 다음 당신은 당신이 원하는 것을 달성하기 위해 당신의 vimrc에 넣어해야하는지의 예입니다.

+0

고마워,하지만 이미 알고있어, OP와 listchars의 문제를 설명하는 링크를 참조하십시오. – Saucier

0

원하는대로하려면 matchadd()을 사용하여 모든 행 끝과 일치시킬 수 있습니다. Matchadd는 원하는 일치 항목을 삭제하는 데 도움이되는 ID를 반환합니다.

:call matchadd("NonText", "$") 

사용 방법에 대한 자세한 내용은 :he matchadd()을 참조하십시오.

HTH

+0

'''conceal''은''syntax match''에만 적용 할 수 있습니다. 예상대로 작동하지 않을 것 같아요? – Saucier

+0

아니요,하지만 matchadd와 함께'set listchars + = eol : ¶'을 사용하는 것이 좋을 것입니다. 그러면 모든 줄 끝은'¶' 문자로 표시되지만 색상 대신 구문과 일치하는 것을 사용하게 될 것입니다. 사실 내 자신의 구성을 고려하고있는 옵션입니다. 커서 라인 아래에있을 때 자신의 색칠 속성을 잃어 버리는 것에 대해서도 후회합니다. – zmo