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


53

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두 번 눌러 전체 구를 강조 표시 할 수 있습니다. 그러나 나는 더 짧고 의미 론적 인 방법이 있다고 생각합니다. 결국, 나는 내가 관심있는 텍스트를 이미 지정했습니다.

"현재 검색 선택을 시각적으로 선택하십시오" 라는 명령을 어떻게 구성 할 수 있습니까?

답변:


38

gn버전 7.4 이상에서 사용할 수 있습니다 gN. v//e트릭을 대체합니다 .

`n`과 같이 마지막으로 사용한 검색 패턴을 검색하고 비주얼 모드를 시작하여 일치하는 항목을 선택하십시오.

참조 :help gn또는 이 Vimcast 더 많은 정보를 얻을 수 있습니다.


이것은 다른 답변에 대한 주석을 복제하며 그대로 유용하지 않습니다. 답을 독자적으로 유지할 수 있도록 문서를 인용하면 좋은 생각 일 수 있습니다.
bwDraco

2
더 나은 답변을 드릴 수 있지만 도움이 될지 확실하지 않습니다. 질문은 목적을 깔끔하게 배치하고 ( "다음 검색 결과를 시각적으로 선택") gn요청 된대로 정확하게 수행합니다. 별도의 답변으로 제출하면이 글을 완전히 대체 할 수 v//e있습니다. 방금 문서를 추가하기 위해 답변을 편집했습니다.
David Lord

감사합니다 도움이 필요하면 둘러보기도움말 센터 를 확인하십시오 . 슈퍼 유저에 오신 것을 환영합니다. 즐거운 시간 되시길 바랍니다.
bwDraco

1
환상적인! 이 스레드를 최신으로 업데이트 해 주셔서 감사합니다. :)
Nathan Long

29

이 시도:

/an arrow
v//e

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


1
Vim 7.4부터는 gn이것이 무엇을 n의미 하는가 없이도 마찬가지입니다.
smathy

8

나는 것을 발견 v//e하면 이전 / 다음 검색 결과에 점프, 비주얼 모드를 종료 당신이 일반적으로 예상하는대로의 시작 부분에 대신, 결과의 끝 부분에 커서를두고 후에 때문에 그 자체로하는 것은 불충분하다.

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

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

건배.


대칭의 경우 : nnoremap g? ??b<cr>v//e<cr>(같은 일을하지만 앞으로 검색하는 대신 뒤로 검색)
Kyle Strand


1

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

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

/an arrowF5를 누른 후


으로 인해 하나 이상의 문자를 선택합니다 +1. 이를 생략하면 검색된 부품 만 선택됩니다. 반면에, nnoremap <F5> v//e<CR>잘 작동하는 것 같습니다.
Dennis Williamson

@Dennis Williamson, +1은 검색된 항목을 정확하게 선택하는 데 필요합니다. +1을 제거하면 커서가있는 문자를 선택하지 않으므로 마지막 문자는 선택되지 않습니다. nnoremap <F5> v // e <CR>이 훨씬 좋습니다.
Johnny

그것은 나를 위해 캐릭터를 선택합니다. 커서 아래에있는 문자를 포함하여 전체 검색 문자열 없이 또는를 수행 한 후 x또는 c을 누르면 삭제됩니다. F5+1
Dennis Williamson

@Dennis Williamson은 방금 'selection'옵션이 "exclusive"로 설정되어 있지만 기본값은 "inclusive"입니다. 이것이 +1없이 당신을 위해 일한 이유입니다. (See : 도움말 선택)
Johnny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.