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

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

Vim을 사용하면서 가끔 소스 코드의 한 부분을 바라보다가 갑자기 화면에 변수가 튀어나오기를 바라는 경우가 있습니다. 쉽습니다. /<var>모든 항목을 강조 표시합니다. 내 문제는 검색으로 인해 창이 이동하는 경우가 많아 동일한 위치의 소스 코드를 볼 수 없다는 것입니다. 몇 줄만 이동하더라도 항목이 어디로 이동했는지 파악하는 데 몇 초가 걸리기 때문에 여전히 당황스럽습니다.

커서를 다음 일치 항목으로 이동하지 않고도 검색어를 강조 표시할 수 있습니까?

답변1

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

이 플러그인을 사용한 경우 간단히 기능을 활성화할 수 있습니다.

\중

그런 다음 NumPad 키를 사용하여 커서를 이동하지 않고도 해당 단어에 색상을 할당할 수 있습니다.

1

원하는 경우 다양한 단어 또는 더 복잡한 검색 패턴에 대해 여러 가지 강조 표시를 한 번에 사용할 수 있습니다.

답변2

하늘색의 대답일반 검색 강조 표시를 사용하여 원하는 것을 달성하는 방법에 대한 아이디어의 핵심을 보여줍니다.

나는 다음과 유사하게 작동하는 키 바인딩을 만들어 해당 기술을 확장했습니다.*명령, 그러나 실제로 다음 경기로 이동하지 않습니다.

내 감사는 다음과 같습니다게리존지적하기 위해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>

답변3

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

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

:set hlsearch

그런 다음 다음을 사용하여 검색 레지스터를 설정할 수 있습니다.

:let @/="variable"

그러면 다음 일치 항목으로 이동하지 않고 모든 변수 발생이 강조 표시됩니다.

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

답변4

게다가:

 :set hlsearch

다음을 수행할 수 있습니다.

 : set noincsearch

관련 정보