[vim] Vim / Vi에 커서를 검색 하이라이트 끝으로 이동시키는 명령이 있습니까?

Vim / Vi에 선택한 검색 세그먼트 내에서 이동하는 명령이 있습니까?

예를 들어 단어를 검색 할 때 강조 표시된 세그먼트의 끝으로 커서를 이동하는 명령이 있습니까? “FishTaco”라는 단어가 있고 “Fish”의 모든 인스턴스를 검색하고 그 뒤에 무언가를 삽입하고 싶다고 가정합니다. 전역 교체를 수행 할 수 있다는 것을 알고 있지만 몇 개의 비 순차적 인스턴스에서만 변경하려면 어떻게해야합니까?

커서를 현재 강조 표시된 세그먼트의 끝으로 이동하여 작업을 수행하는 것이 편리한 위치를 알 수있었습니다.



답변

다음과 같이 할 수 있습니다.

/Fish/e

/e말은 검색 영역 (대신 기본적으로 첫 번째 문자의 끝 부분에 커서를 토지.


답변

Fish의 마지막 캐릭터 뒤에 커서를 놓고 싶다면 다음을 사용할 수 있습니다.

/Fish/e+1

커서가 h 뒤에 위치합니다. ( +1커서가 없으면 마지막 문자의 왼쪽으로 끝납니다.)

특히 Fish 다음에 커서를 두는 데 관심이 있지만 “FishTaco”에 나타날 때만 다음 옵션 중 하나를 시도 할 수 있습니다.

당신이 사용할 수있는

/FishTaco/s+4

커서가 Fish와 Taco 사이에있게됩니다. 그만큼/s+4 4 곳 검색어의 시작 후 커서를 배치합니다.

마찬가지로 사용할 수 있습니다.

/FishTaco/e-3

그러면 커서가 마지막 (종료) 문자 왼쪽의 3 개 위치에 배치됩니다.

당신은 또한 사용할 수 있습니다

/FishTaco/b+4

/b+4으로 처리 되기 때문 입니다 /s+4.


답변

이미를 검색 한 경우를 /Fish통해 일치의 끝으로 이동하도록 검색을 빠르게 변경할 수 있습니다.이 //e경우 마지막 검색을 반복하지만 e이미 설명 된 수정자를 추가합니다 .


답변

/ long-regexp1 \zs long-regexp2 / .. 커서가 \ zs에서 멈 춥니 다 . : help \ zs 참조


답변

시각적 선택 o이 끝나면를 사용 하여 선택한 블록의 시작과 끝 사이에서 커서 위치를 전환 할 수 있습니다 . 선택이 라인 방식 일 때 이것은 라인을 토글합니다. 위치가 즉, 커서가 선택 항목의 시작 및 끝 라인으로 이동하지만 시작 또는 종료 문자로는 이동하지 않습니다. 선택이 문자 단위 인 경우 이동도 문자 단위입니다.

당신은 또한 사용할 수 있습니다 `<`>이 다시 설정하거나 선택 범위를 조정하는 데 사용되도록 그러나이, 선택 자체에 영향을 미치는, 시작과 시각적 블록의 끝 사이에 커서를 전환 할 수 있습니다.

편집 : 아, 그러나 검색 강조 표시의 o경우 줄 삽입을 시작 하기 때문에 작동하지 않습니다 . 검색 하이라이트는 시각적 선택과 동일하지 않은 것 같습니다. 죄송합니다. 🙂


답변

질문의 “경기 종료시 커서”부분에 이미 답변이 있습니다.

당신은 할 수 있습니다 :%s/Fish/FishTaco/c. 이렇게하면 모든 교체를 확인하거나 거부하고 “경기 종료시 커서”비즈니스 전체를 건너 뛸 수 있습니다.


답변