vim-textobj-user을 사용하면 원하는대로 텍스트 개체를 정의 할 수 있습니다.
call textobj#user#plugin('textobj-syntax-is-garbage', {
\ 'regex_j': {
\ 'select': 'aj',
\ '*pattern*': '^\s*"\?\w\+"\?\s*:\s*{\_[^}]*}.*\n\?',
\ })
이 중첩 된 JSON 블록에 대한하지 작업 :(하지만
aj
당신을 의미 사용 사례에 대한 작동합니다 : 여기에 그냥 쓴 당신의 기준과 일치하는 블록을 선택하는 일입니다 실행할 수 V J 또는 D J 또는 너의 작은 마음이 바라는대로.
설명 : 옵션 따옴표
와 키에 라인의 시작부터
^\s*"\?\w\+"\?\s*:\s*{
일치 (단어 문자)
\_[^}]*
닫는 젖꼭지 브래킷이 아니다
일치 아무것도 . \_
은 여러 줄에 걸쳐 일치를 의미합니다.
}.*\n\?
일치 닫는 젖꼭지 브래킷, 당신은 블록을 삭제 한 후 그 라인이 주변에 휴식 방치하지 않도록 선택 바꿈.
이 정규식을 분명히 향상시킬 수 있습니다. 아마도 정규식으로 올바른 중첩 된 블록 선택을 수행하는 것은 불가능하지만 textobj-entire를 사용하면 실행할 함수를 지정할 수 있다고 생각합니다.
'bv % l '또는'V %'를 제외하고, 플러그인이 없다면 거의 자신 만의 스크립트를 만들어야합니다. – Kevin
그런 식으로 포맷 된 경우 'V % d'이 (가) 작업을 수행해야합니다. –
시각적 인 작업은 이에 해당하는 정상적인 연산자가 없습니까? –