Vim - 검색으로 강조 표시된 텍스트를 선택하시겠습니까?

Vim - 검색으로 강조 표시된 텍스트를 선택하시겠습니까?

vim에서는 h/j/k/l. 그런 다음 n발생 사이를 뛰어 다녔습니다.

다음 문자를 받았다고 가정해 보세요.

Time flies like an arrow; fruit flies like a banana. - Groucho Marx

입력 /an arrow하고 Enter 키를 쳤습니다. 해당 문구가 강조 표시되고 를 사용하여 해당 문구로 이동합니다 n.

이제 나는해당 텍스트를 시각적으로 선택, 변경하거나 삭제할 수도 있습니다. (예, 대체 명령에 대해 알고 있습니다 :s.)

커서가 "화살표" 시작 부분의 문자 "a"에 있으므로 을 누른 v다음 e몇 번 눌러 전체 문구를 강조 표시할 수 있습니다. 하지만 더 짧고 의미론적인 방법이 있다고 생각합니다. 결국 내가 관심 있는 텍스트는 이미 지정해 두었으니까.

다음과 같은 명령을 어떻게 작성할 수 있나요?"현재 검색 선택 항목을 시각적으로 선택하시겠습니까?"

답변1

gn버전 7.4 이상에서 사용할 수 있습니다 (및 gN이전 버전으로 이동). 그것은 v//e트릭을 대체합니다.

`n`과 같이 마지막으로 사용된 검색 패턴을 앞으로 검색하고 시각적 모드를 시작하여 일치 항목을 선택합니다.

또는:help gn이 빔캐스트자세한 내용은.

답변2

이 시도:

/an arrow
v//e

시각적 모드로 들어가서 마지막 검색을 반복하고 끝까지 선택합니다.

답변3

v//e시각적 모드를 종료한 후 다음/이전 검색 결과로 점프하면 일반적으로 예상하는 것처럼 커서가 결과의 시작 부분이 아닌 결과 끝 부분에 놓이기 때문에 그 자체로는 충분하지 않다는 것을 알았습니다 .

이 문제를 해결하려면 먼저 검색 결과의 끝( //e)으로 점프한 다음 시각적으로 시작( v??)을 선택해야 합니다.

" visually select a search result
nnoremap g/ //e<Enter>v??<Enter>

건배.

답변4

이를 수행하는 "멍청한" 방법은 아래와 같이 키(이 경우 F5)를 매핑하는 것입니다.

nnoremap <F5> v/<c-r>=strpart(@/,1) . '/e+1'<CR><CR>

F5를 누른 후 /an arrow.

관련 정보