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
.