커서를 이동하지 않고 검색어 강조


11

Vim을 사용하면서 나는 잠시 동안 소스 코드 섹션을 쳐다 보면서 갑자기 화면상의 변수가 튀어 나오길 원한다. 간단합니다. /<var> 그들 모두를 강조 표시합니다. 내 문제는 검색이 창을 옮기는 경우가 더 많아서 같은 장소에서 소스 코드를보고 있지 않다는 것입니다. 몇 줄 밖에 이동하지 않았지만 상황이 어느 곳으로 옮겨 졌는지 파악하는 데 몇 초가 걸릴 필요가 있기 때문에 여전히 저를 버립니다.

커서를 다음 경기로 이동하지 않고 검색어를 강조 표시 할 수 있습니까?


2
정확하게 대답은 아니지만, 나는 두 개의 역 따옴표 (``)를 사용하여 내가 어디에 있었는지로 건너 뛸 수 있습니다.
Izkata

답변:


1

http://vim.wikia.com/wiki/VimTip1572

이 플러그인을 사용했다면 간단하게 기능을 활성화 할 수 있습니다

\엠

그런 다음 NumPad 키를 사용하여 커서를 움직이지 않고도 그 단어에 색상을 할당하십시오.

1

한 번에 여러 다른 단어를 사용하거나 원하는 경우 더 복잡한 검색 패턴을 사용할 수 있습니다.


나는이 플러그인을 좋아한다!
Andrew Wood

13

하늘색의 대답 당신이 원하는 것을 성취하기 위해 일반적인 검색 강조 표시를 사용하는 방법의 핵심을 보여줍니다.

나는이 기술을 키 바인딩과 유사하게 작동시킴으로써 확장했다. * 명령 , 실제로 다음 경기로 이동하지 않아도됩니다.

고마워. 개리 존 를 지적하기 위해 expand() ~에 해당 * 단어 선택 (사용을 피하기 위해 * 보기를 복원). 이렇게하면 코드를 단순화하여 매핑에서 직접 이동할 수 있습니다 (함수를 사용하지 않아도 됨). 또한 부분 단어와 일치하는 매핑을 추가했습니다 ( g* ).

:" The leader defaults to backslash, so (by default) this
:" maps \* and \g* (see :help Leader).
:" These work like * and g*, but do not move the cursor and always set hls.
:map <Leader>* :let @/ = '\<'.expand('<cword>').'\>'\|set hlsearch<C-M>
:map <Leader>g* :let @/ = expand('<cword>')\|set hlsearch<C-M>

1
winsaveview (), winrestview () 및 normal * 대체하여 let @/ = @/let @/ = expand("<cword>").
garyjohn

@ garyjohn : 예, 좋습니다. 나는 "word"선택에 상응하는 것이 있는지 확신하지 못했다. *, 그러나 <cword> 그것입니다.
Chris Johnsen

11

또한 일치시키려는 변수에 검색 레지스터를 설정할 수 있습니다.

먼저 검색 강조 표시가 켜져 있는지 확인하십시오.

:set hlsearch

그런 다음 검색 등록을 다음과 같이 설정할 수 있습니다.

:let @/="variable"

그러면 다음 일치 항목으로 건너 뛰지 않고 모든 변수가 강조 표시됩니다.

자세한 내용은 다음을 참조하십시오. :help @/


6

한 가지 방법은 :match 명령, 예를 들어,

:match Question '^R^W'

그러면 질문 강조 표시 그룹을 사용하여 커서 아래에 단어가 강조 표시됩니다. 내 터미널에서 멋진 초록색이기 때문에 종종 Question 그룹을 사용합니다. 사용 가능한 하이라이트 그룹을 보려면, 다음을 실행하십시오.

:hi

그만큼 ^R^W Ctrl-R 및 Ctrl-W이고 커서 아래의 단어로 대체됩니다. 만나다

:help c_CTRL-R_CTRL-W

그것에 대해 더 알고 싶습니다. 만나다

:help :match

에 대한 자세한 내용은 :match 명령. 강조 표시를 지우려면 단순히

:match

인수없이.


1

이외에 :

 :set hlsearch

다음을 원할 수 있습니다 :

 : set noincsearch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.