NetBeans에서와 같이 Vim에서 커서 아래의 변수 강조 표시
저는 NetBeans에서 작업했고이 기능이 마음에 들었습니다. 변수 이름에 커서를 놓으면 변수의 모든 항목이 강조 표시됩니다. 이것은 변수의 모든 발생을 빠르게 검색하는 데 매우 유용합니다. 이 동작을 Vim에 추가 할 수 있습니까?
이 자동 명령은 원하는 작업을 수행합니다.
:autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
편집 :IncSearch
내 예에서는 하이라이트 그룹을 사용 했지만 다음 명령을 실행하여 사용할 다른 색상을 찾을 수 있습니다.
:so $VIMRUNTIME/syntax/hitest.vim
설정하면
:set hlsearch
사용 후 검색 패턴의 모든 항목을 강조하고 *
또는 #
커서 아래에있는 단어의 발생을 찾기 위해, 그것은 당신에게 당신이 원하는 어떤 방법을 얻을 것이다. 그러나 구문 인식 변수 강조 표시는 VIM의 범위를 벗어납니다.
이 명령문을 사용하면 변수가 커서 아래에있는 모든 단어를 강조 표시하는 기능을 활성화 / 비활성화 할 수 있습니다.
:autocmd CursorMoved * exe exists("HlUnderCursor")?HlUnderCursor?printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\')):'match none':""
다음을 사용하여 강조 표시를 활성화합니다.
:let HlUnderCursor=1
다음을 사용하여 비활성화하십시오.
:let HlUnderCursor=0
강조 표시를 활성화 / 비활성화하기위한 바로 가기 키를 쉽게 정의 할 수 있습니다.
:nnoremap <silent> <F3> :exe "let HlUnderCursor=exists(\"HlUnderCursor\")?HlUnderCursor*-1+1:1"<CR>
변수를 삭제하면 match 문이 실행되지 않고 현재 강조 표시가 지워지지 않습니다.
:unlet HlUnderCursor
커서가 이러한 단어에있을 때 언어 단어 (예 : if
, #define
) 를 강조 표시하지 않으려면 .vimrc
@too_much_php 답변에 따라이 함수를 넣을 수 있습니다 .
let g:no_highlight_group_for_current_word=["Statement", "Comment", "Type", "PreProc"]
function s:HighlightWordUnderCursor()
let l:syntaxgroup = synIDattr(synIDtrans(synID(line("."), stridx(getline("."), expand('<cword>')) + 1, 1)), "name")
if (index(g:no_highlight_group_for_current_word, l:syntaxgroup) == -1)
exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
else
exe 'match IncSearch /\V\<\>/'
endif
endfunction
autocmd CursorMoved * call s:HighlightWordUnderCursor()
나는 당신이 정말로 원하는 것은 Shuhei Kubota의 다음 플러그인이라고 생각합니다.
http://www.vim.org/scripts/script.php?script_id=4306
설명에 따르면 '이 스크립트는 많은 IDE처럼 커서 아래에있는 단어를 강조합니다.'
건배.
이 변형은 속도 (CursorMoved 대신 CursorHold 사용) 및 hlsearch
. 현재 검색어 강조 표시는 중단되지 않습니다.
" autosave delay, cursorhold trigger, default: 4000ms
setl updatetime=300
" highlight the word under cursor (CursorMoved is inperformant)
highlight WordUnderCursor cterm=underline gui=underline
autocmd CursorHold * call HighlightCursorWord()
function! HighlightCursorWord()
" if hlsearch is active, don't overwrite it!
let search = getreg('/')
let cword = expand('<cword>')
if match(cword, search) == -1
exe printf('match WordUnderCursor /\V\<%s\>/', escape(cword, '/\'))
endif
endfunction
vim_current_word
즉시 작동하고 구문을 인식하며 사용자 정의 가능한 색상을 허용합니다.
참조 URL : https://stackoverflow.com/questions/1551231/highlight-variable-under-cursor-in-vim-like-in-netbeans
'Program Tip' 카테고리의 다른 글
Rails의 뷰당 JavaScript 파일 (0) | 2021.01.10 |
---|---|
Google 크롬의 자바 스크립트 콘솔 키보드 단축키 (0) | 2021.01.10 |
Java를 사용하여 Windows의 32 비트 또는 64 비트 아키텍처를 어떻게 결정합니까? (0) | 2021.01.10 |
Android 장치에서 localhost를 탐색하는 방법은 무엇입니까? (0) | 2021.01.10 |
다른 스키마로 데이터베이스를 복원하고 싶습니다. (0) | 2021.01.10 |