XTerm에 깜박이는 블록 커서가 있습니다. 목표는 항상 내 현재 위치를 알 수 있는 것입니다. 일반적으로 잘 작동하지만 커서를 커서 색상과 비슷한 배경에 놓으면 실패합니다. 제가 의미하는 바의 대표적인 예는 Vim에서 검색하는 것입니다. 배경은 노란색이고 커서는 흰색입니다( 이후 .foreground
) .Xesources
. 따라서 강조 표시된 결과가 현재 결과인지 거의 알 수 없습니다.
노란색 검색 결과를 얻을 수 있도록 커서가 현재 문자 색상을 반전시키길 원합니다(그러나 커서가 깜박이면 커서가 가리키는 문자는 어두운 배경과 밝은 텍스트를 갖게 됩니다). 이 솔루션은 최소한 이 특정 시나리오에서는 작동해야 합니다.
Vim이나 XTerm의 구성에서 이 작업을 수행해야 하는지 잘 모르겠습니다. 이에 대해 웹과 매뉴얼 페이지를 검색해 보았으나 관련 내용을 찾을 수 없었습니다.
저는 gvim을 사용하지 않고편안Wim. 많은 리소스에서 guibg=reverse
Vim을 언급하지만 여기서는 작동하지 않습니다.
답변1
커서 색상을 지정하지 않으면xterm커서가 위치한 셀에는 전경색/배경색의 반대색으로 커서가 그려집니다. 그것은 xterm을 위한 것입니다. 다른 어떤 프로그램도 이와 같이 동작하지 않습니다.
이것은xterm 매뉴얼설명하다:
cursorColor
(수업CursorColor
)
텍스트 커서에 사용되는 색상을 지정합니다. 기본값은 "XtDefaultForeground
"입니다. 기본적으로 xterm은노력하다이 색상은 텍스트 셀의 배경을 채워 커서를 그리므로 배경색과 동일하지 않도록 합니다. 이 색상을 변경할 수 있는 제어 시퀀스에도 동일한 제한 사항이 적용됩니다.이 자원을 설정하면 xterm의 커서 색상 조정 대부분이 무시됩니다. 검정색 배경에 검정색 커서가 나타나는 등 특정 상황을 억제하기 위해 여전히 역방향 비디오를 사용합니다.
또한 텍스트를 선택하면(예: 마우스 사용) xterm은 커서와 선택 항목을 다르게 보이도록 시도합니다. 기본 설정에 따라 이와 관련된 리소스 설정이 있습니다.highlightReverse
,highlightSelection
그리고highlightTextColor
.
전경색/배경색 반전을 위한 Xterm의 방식은 커서가 이미 읽을 수 있는 셀에 있다고 가정합니다. 텍스트가 노란색이고 배경이 흰색인 경우 커서는 텍스트보다 더 잘 읽을 수 없습니다.
Xterm에는 커서 색상을 설정하는 데 사용할 수 있는 이스케이프 시퀀스도 있지만 vim은 이를 사용하여 커서 색상을 재정의하는 방법을 제공하지 않습니다(사실 그렇게 하면 복잡할 수 있습니다).
xterm의 기본 커서 색상 구성표는 가독성을 저하시키지 않으므로 vim에서 이 문제에 대한 해결책은 읽기 쉬운 색상 테마(노란색 배경과 흰색 텍스트 없음)를 선택하는 것입니다.
답변2
색상을 변경하는 것 외에도 커서를 더 쉽게 찾을 수 있는 몇 가지 방법을 생각해 볼 수 있습니다. 사람들은 cursorcolumn
이 기능을 켜 거나 cursorline
끄거나 영구적으로 켜도록 설정할 수 있습니다. 그것은 내가 가장 좋아하는 색 구성표에 대한 힌트가 충분하지 않을 수도 있고, 참기에는 너무 추악할 수도 있습니다.
또 다른 해결책은 검색 강조 표시를 전환하는 것입니다. off 를 사용 :se nohls
하고 on 을 사용하십시오 :sehls
. 이는 지속적인 설정이므로 사람들은 강조 표시된 검색으로 돌아가는 것을 잊을 수 있습니다.
현재 검색에 대한 강조 표시를 끄기 위해 .vimrc에서 다음 설정을 사용하여 "Ctrl+l"(a가 아닌 ell)을 매핑했습니다. 다음에 검색할 때 하이라이트가 반환됩니다. "Ctrl+l"은 기본 매핑이 :redraw
화면을 새로 고치는 명령 이므로 다시 매핑하는 데 편리합니다 .
nnoremap <silent> <C-l> :<C-u>nohlsearch<CR><C-l>
또한 "F3"을 사용하여 지속적인 검색 강조 표시를 전환하는 매핑도 있습니다.
nnoremap <F3> :set hlsearch! hlsearch?<CR>