.vimrc를 수동으로 가져온 후에 Vim이 강조 구성을 활성화하는 이유는 무엇입니까?

.vimrc를 수동으로 가져온 후에 Vim이 강조 구성을 활성화하는 이유는 무엇입니까?

내 것을 청소하고 있어요vimrc현재는 관리하기 쉽도록 별도의 파일로 분할되어 있습니다. 이러한 변경을 수행한 후에는 후행 공백 강조 표시를 제외하고 모든 구성, 매핑 및 플러그인이 작동하는 것 같습니다.

.vim/rc/appearance.vim에 다음 줄이 있습니다:

highlight RedundantSpaces term=standout ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/ "\ze sets end of match so only spaces highlighted

내가 이해한 바에 따르면, 첫 번째 줄은 하이라이트 그룹 "RedundantSpaces"를 생성하고 vim에게 컬러 터미널에서 하이라이트 그룹과 일치하는 모든 텍스트의 배경을 빨간색으로 만들도록 지시합니다. 두 번째 줄은 강조 표시된 그룹과 일치하는 텍스트를 식별하는 데 사용되는 패턴을 정의합니다.

vim에서 파일을 열고 빈 줄에 공백을 입력하기 시작하면 빨간색으로 강조 표시되지 않습니다. 을 실행하면 :source ~/.vimrc강조 표시됩니다.

rc/*.vim모든 개별 파일을 가져오는 줄을 제거 .vimrc하고 RedundantSpaces위의 두 줄을 직접 넣으면 .vimrcvim은 예상대로 작동하고 후행 공백이 강조 표시됩니다.

그러나 소스 줄을 유지 rc/*.vim한 다음 RedundantSpaces해당 줄을 my 명령의 끝에 넣으면 .vimrc(즉, 이 명령은 vim이 호출될 때 실행되는 마지막 명령임) 강조 표시가 여전히 작동하지 않으므로 이를 수행해야 합니다 source ~/.vimrc.

내 파일의 어떤 항목이 강조 구성과 제대로 상호 작용하지 않는 것은 분명 rc/*.vim하지만 그게 무엇인지는 설명할 수 없습니다. 이 파일의 어떤 항목도 강조 구성과 상호 작용해서는 안 됩니다.

여기서 무엇이 잘못될 수 있는지 제안할 수 있는 사람이 있나요?

답변1

이 질문의 원인은 다음과 같습니다.현명한 플러그인: 93행.:help t_Co

" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^linux'
  set t_Co=16  " << --- Causes hickup
endif

자세한 로그 모드( )에서 vim을 실행하고 vim -V15load_log.vim검색하면 실제로 구문 분석되는 것을 볼 수 있습니다 t_Co=.RedundantSpacessensible뒤쪽에당신의 appearance.vim파일.

빠른 수정은 코드의 해당 부분을 주석 처리하고 이를 git 저장소에 추가하는 것입니다 .vimrc. 그러나 git 저장소에 연결할 때 이는 원하는 것이 아닐 수도 있습니다.

bundle또 다른 방법은 디렉토리 밖으로 이동하여 별도의 source줄로 추가하는 것입니다 vimrc.앞으로귀하의 글로벌 루프.

즉:

  source ~/.vim/hacks/vim-sensible/plugin/sensible.vim

  for f in split(glob ...

또 다른 접근 방식은 BufLoad에 사용자 정의 강조 표시를 로드하는 것입니다.

등. …

답변2

NeoBundle을 사용하는 경우 를 사용하면 NeoBundleLazy 'tpope/vim-sensible'vimrc NeoBundleSource가 끝나면 괜찮습니다. 또한보십시오https://github.com/tpope/vim-sensible/issues/74.

관련 정보