![Vim이 .vimrc를 수동으로 소싱한 후에만 하이라이트 구성을 활성화하는 이유는 무엇입니까?](https://rvso.com/image/31675/Vim%EC%9D%B4%20.vimrc%EB%A5%BC%20%EC%88%98%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%86%8C%EC%8B%B1%ED%95%9C%20%ED%9B%84%EC%97%90%EB%A7%8C%20%ED%95%98%EC%9D%B4%EB%9D%BC%EC%9D%B4%ED%8A%B8%20%EA%B5%AC%EC%84%B1%EC%9D%84%20%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 내 것을 청소하고 있었다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
줄을 .vimrc
직접 넣으면 vim은 예상대로 작동하고 후행 공백이 강조 표시됩니다.
그러나 소싱 줄을 그대로 두고 my 끝에 줄을 rc/*.vim
두면 (즉 해당 명령이 vim이 호출될 때 마지막으로 실행되는 명령임) 강조 표시가 여전히 작동하지 않으므로 .RedundantSpaces
.vimrc
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=
실제로 구문 분석된 RedundantSpaces
것을 볼 수 있습니다.sensible
~ 후에당신의 appearance.vim
파일.
빠른 수정은 코드의 해당 섹션을 주석 처리하고 에 추가하는 것입니다 .vimrc
. 하지만 git 저장소에 연결하면 원하는 것이 아닐 수도 있습니다.
다른 접근 방식은 해당 항목을 디렉토리 밖으로 이동하여 에 bundle
별도의 줄로 추가하는 것 입니다 .source
vimrc
~ 전에당신의 글로브 루프.
즉:
source ~/.vim/hacks/vim-sensible/plugin/sensible.vim
for f in split(glob ...
또 다른 방법은 BufLoad에 사용자 정의 강조 표시를 로드하는 것입니다.
등. …
답변2
NeoBundle을 사용하고 를 사용하는 경우 vimrc가 끝나면 트릭을 수행합니다 NeoBundleLazy 'tpope/vim-sensible'
. NeoBundleSource
또한 참조하십시오https://github.com/tpope/vim-sensible/issues/74.