태그 보관물: escape-characters

escape-characters

변수 / 레지스터를 올바르게 vim-escape하는 방법 현재 yank 레지스터의

예를 들어 현재 yank 레지스터의 발생을 강조하고 싶습니다.

:let @/=@"

@"백 슬래시처럼 ‘재미있는’것이 없으면 작동 합니다.

내가 할 수있는

:let @/=escape(@", '\\')

그러나 이것이 옳은 일인지 확실하지 않으며 가능한 모든 문제가있는 인물을 피할 수 있는지 확실하지 않습니다 . 다른 사람이있을 수 있습니다.

업데이트 : 좋아, 더 많은 것을 피해야합니다. 모든 리젠트 특수 문자는 적어도 보인다. 그렇다면 정규 표현식 이스케이프 함수 또는 모든 정규 표현식 특수 문자를 나열하는 변수가 있습니까?



답변

나는 그런 목록이 없다고 생각합니다. 다음은 현재 선택된 문자열을 검색하기 위해 매크로의 일부로 꽤 오랫동안 사용했던 이스케이프 함수입니다.

escape(@", '\\/.*$^~[]')

편집하다:

원래 답변에 ~ / .vimrc에서 너무 많이 복사했기 때문에 추가 인수가있었습니다. 다음은 해당 컨텍스트가 도움이 될 수있는 경우 이스케이프를 사용한 매핑입니다. 일부 텍스트를 강조 표시하고 입력 *하면 다음에 해당 텍스트가 검색됩니다. (원래 Jürgen Krämer가 작성했습니다.)


vnoremap <silent> * :<C-U>
          \let old_reg=getreg('"')<bar>
          \let old_regmode=getregtype('"')<cr>
          \gvy/<C-R><C-R>=substitute(
          \escape(@", '\\/.*$^~[]'), '\n', '\\n', 'g')<cr><cr>
          \:call setreg('"', old_reg, old_regmode)<cr>


답변