2016-11-20 1 views
1

내 quickfix-window에 커서의 현재 행에 대한 강조 표시가 필요합니다.quickfix-window에서 커서 강조 표시 : QuickFixCmdPre가 QuickfixCmdPost를 재정의합니까?

일부 연구 끝에 나는 set cursorlinehighlight CursorLine term=bold cterm=bold guibg=Grey40을 사용하여 현재 줄의 일반적인 모양을 구성 할 수 있음을 발견했습니다.

이제 나는 quickfix-window에있을 때만 그걸 원합니다. 그래서 함수 내에서이 두 라인을 포장하기 시작하고 자동 명령으로 그 함수를 호출 :

au QuickFixCmdPre * call EnableSearchHighlighting()

를 지금까지 너무 좋아. 적어도 한 번 검색 한 후에도 강조 표시가 활성화되었으므로이 효과를 다시 비활성화해야했습니다. 내가 ...을 끼 었어

난 그냥 set nocursorlineQuickFixCmdPost - 이벤트에서이 하나를 호출하는 다른 함수를 쓴 경우 여기 그리고이다. 그러나 웬일인지 이것이 모든 것을 깨뜨렸다. 이제는 더 이상 강조 표시를 얻지 않을 것이며, quickfix-window에서도 강조 표시를하지 않을 것입니다.

포스트 이벤트가 프리 이벤트보다 우선시 된 것처럼 느껴집니다. 여기에서 무엇을 시도해야할지 모르겠습니다.

어쩌면 누구든지 나를 도울 수 있습니까? 아니면 처음부터 강조 표시하는 또 다른 접근법이 있습니까? 읽기

function EnableSearchHighlighting() 
    set cursorline 
    highlight CursorLine term=bold cterm=bold guibg=Grey40 
endfunction 

function DisableSearchHighlighting() 
    set nocursorline 
endfunction 

au QuickFixCmdPre * call EnableSearchHighlighting() 
au QuickFixCmdPost * call DisableSearchHighlighting() 

감사합니다 : 그것은 지금 내의 .vimrc에서와 같이

여기에 전체 코드입니다. :)

답변

3

접근 방식에는 많은 문제가 있지만 주된 이유는 작동하지 않는 이유는 오류 창으로 전환하기 전에 각 quickfix 명령에 대해 QuickFixCmdPreQuickFixCmdPost이 실행된다는 것입니다.

는 파일 ftplugin/qf.vim이 추가 :
setlocal cursorline 

그런 다음 어떤 기능이나 autocmd 외부, 당신의 vimrchighlight 정의를 추가 :

highlight CursorLine term=bold cterm=bold guibg=Grey40 
+0

이봐, 덕분에 당신의 응답을. qf.vim이 quickfix-window 주위의 모든 설정을 포함해야하는 특수 파일이라는 것을 올바르게 이해합니까? 이 파일 ftplugin이 들어있는 폴더의 이름을 정하는 것이 관례입니까? 어쨌든, 당신의 솔루션은 완벽하게 작동했습니다, 감사합니다! – AvantiC