![검색을 현재 행으로 제한하는 방법](https://linux55.com/image/19924/%EA%B2%80%EC%83%89%EC%9D%84%20%ED%98%84%EC%9E%AC%20%ED%96%89%EC%9C%BC%EB%A1%9C%20%EC%A0%9C%ED%95%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
삽입 모드에 있는 동안 "공통" 삽입 지점을 연속으로 이동할 수 있는 맵을 작성하려고 합니다. 예를 들어, 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>
이렇게 하면 커서가 현재 줄의 일치 항목으로 이동하지만 두 가지 작업이 제대로 수행되지 않습니다.
- 키를 누를 때마다 잠시 멈춤 현상이 발생합니다.
- 원하는 대로 문자를 일치시킨 후가 아니라 문자를 일치시키기 전에 Ins 모드로 전환됩니다.