vim의 활성 창을보다 분명하게 만들기


22

내 작업 공간은 일반적으로 vim이있는 매우 큰 xterm이며 6 개 이상의 버퍼로 나뉩니다. 어느 것이 활성 버퍼인지 더 분명하다면 정말 도움이 될 것입니다. 지금은 이것을 위해 줄 번호가 있습니다.

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END

그러나 이것은 버퍼를 변경하면 코드가 왼쪽이나 오른쪽으로 점프한다는 것을 의미합니다. 또한 비활성 버퍼 에서도 94 번째 줄을 볼 수 있기를 바랍니다 . 활성 버퍼에서 줄 번호의 색상을 변경하는 방법이 있습니까?

답변:


26

템플릿에 따라 색상 열과 같은 다양한 속성을 변경할 수 있습니다.

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set colorcolumn=80
    autocmd WinLeave * set colorcolumn=0
augroup END

현재 창에서 열 80의 색상이 표시되고 다른 창에서는 비활성화됩니다. 줄 번호를 설정 / 설정 해제하는 것보다 조금 덜 문제입니다.

현재 줄을 강조 표시하는 데 익숙한 경우 (작은 설정) 훨씬 덜 방해가되는 옵션은 다음과 같습니다.

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set cul
    autocmd WinLeave * set nocul
augroup END

그것은 모두 당신의 사용법과 당신이 기꺼이 견딜 것입니다.


11

상태 표시 줄의 색은 어떤 창이 활성화되어 있는지 확인하는 가장 일반적인 방법입니다. 다음 두 줄로 색상 구성표에 정의되어 있습니다.

hi StatusLine   ctermfg=15  guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold
hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none

첫 번째는 현재 창이고 두 번째는 "비전 류"창입니다.

이것은 xoria256 에서 발췌 한 것이므로 색상을 색상 체계에 맞게 조정해야합니다.

그러나 당신은 그런 식으로 시도 할 수 있습니다 (두 번째 줄의 색상은 완전히 무작위입니다).

augroup NrHighlight
  autocmd!
  autocmd WinEnter * hi LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
  autocmd WinLeave * hi LineNr ctermfg=274 guifg=#e9e9e9 ctermbg=133 guibg=#212121
augroup END

이미 WinEnter / WinLeave에서 LineNr 강조 표시를 변경하려고 시도했지만 LineNr 색상이 전체적으로 나타납니다.
DrHyde

그렇습니다. 나는 당신의 의견을 기다려야했습니다. 따라서 LineNr이 전역 적이라면 특정 창에서 변경할 수있는 방법이 없습니다. 상태 표시 줄이 충분하다고 생각하지 않습니까?
romainl

창마다 다른 버전의 LineNr이 있는지 궁금합니다. 그리고 아니요, 상태 표시 줄이 충분하지 않다고 생각합니다. 도움이되지만 더 원합니다. 상태 표시 줄을 사용할 때의 한 가지 문제는 창의 맨 아래에 활성 창 표시기를 두는 것이 우리가 다른 모든 것 (색상이 변하는 창의 맨 위의 제목 표시 줄)과 정확히 반대이므로 "오 그래, vim은 다른 방식으로이 작업을 수행한다"라고 생각하기 위해 잠시 멈춘다. 줄 번호 반면 있습니다 항상 에, 모든 같은 장소에서, 응용 프로그램입니다.
DrHyde

창 배경색을 변경할 수 있다면 정말 좋았지 만 위와 같이 들리는 것은 불가능합니다.
Jonathan Hartley

사용 hi StatusLine...하고 hi StatusLineNC...매력처럼 작동합니다!
Luc M


2

이것이 제가하는 것입니다:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set relativenumber
    autocmd WinLeave * set norelativenumber
augroup END

상대 숫자는 반복되는 명령의 양을 계산하는 데 도움이되므로 편집하지 않는 창에서는 명령을 사용하지 않습니다.



1

이를에 추가 ~/.vimrc하면 비활성 창의 상태 표시 줄이 짙은 회색 배경으로되어 활성 창의 흰색 상태 표시 줄과 구별됩니다.

highlight StatusLineNC cterm=bold ctermfg=white ctermbg=darkgray

이 스크린 샷 예를 참조하십시오. 중간 창이 활성화됩니다 (흰색 상태 표시 줄). 왼쪽 및 오른쪽 창이 비활성화되어 있습니다 (진한 회색 상태 표시 줄).

여기에 이미지 설명을 입력하십시오

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