검색을 현재 행으로 제한하는 방법

검색을 현재 행으로 제한하는 방법

삽입 모드에 있는 동안 "공통" 삽입 지점을 연속으로 이동할 수 있는 맵을 작성하려고 합니다. 예를 들어, delimitMate 플러그인이 있습니다. 따라서 시작 구분 기호를 입력하면 자동으로 구분 기호가 닫히고 그 사이에 놓이게 됩니다. 내부에 텍스트를 입력한 후에는 일반적으로 구분 기호 끝으로 이동하여 삽입 모드를 유지하고 싶습니다. 앞으로는 다음과 같은 기능을 위해

 $("#someid").live("someevent", function (param1, param2) {

내가 원하는 것은 다음 구분 기호(따옴표, 큰따옴표, 대괄호 및/또는 EOL) 중 첫 번째 이후로 점프하고 해당 지점을 반복할 수 있는 삽입 모드 매핑입니다.

VIM 검색 문서를 확인했습니다. \%l 연산자를 사용하면 특정 줄 번호로 제한할 수 있습니다. \%.l(.이 현재 줄)을 시도했지만 작동하지 않습니다. 어떤 아이디어가 있나요?

:exe  "/\\%" . line(".") . "l[{}()\"':=\\[\\],]"

작동하는 것 같지만 커서를 일치 항목으로 이동하지 않습니다.

답변1

다음과 같이 작동하도록 하십시오.

inoremap <C-e> <C-o>:call search("\\%" . line(".") . "l[{}():=\\[\\]\.,]","We")<cr>

이렇게 하면 커서가 현재 줄의 일치 항목으로 이동하지만 두 가지 작업이 제대로 수행되지 않습니다.

  1. 키를 누를 때마다 잠시 멈춤 현상이 발생합니다.
  2. 원하는 대로 문자를 일치시킨 후가 아니라 문자를 일치시키기 전에 Ins 모드로 전환됩니다.

관련 정보