2012-01-01 2 views
1

나는 my .vimrc 파일의 라인.vimrc 파일을 읽은 후 vim이 zipPlugin.vim 시스템을 읽는 이유는 무엇입니까?

set cpoptions+=$ 

있습니다. 그러나에 따르면

verbose set cpoptions output: 

cpoptions=aABceFs 
Last set from /usr/share/vim/vim73/plugin/zipPlugin.vim 

: 항상 zipPlugin.vim에 의해 무시됩니다. 왜 이런 vim이 플러그인을 읽는 지 궁금합니다 을 읽은 후 .vimrc 파일을 읽었습니까? 이 문제를 해결할 방법이 있습니까?

답변

3

vim은 플러그인보다 항상 vimrc를 읽으므로. 이로드 순서는이 경우 vimrc에서 플러그인 옵션을 설정할 수 있기 때문에 의미가 있습니다. 재정의 할 수는 없지만 vimrc에서 zipPlugin (:source /usr/share/vim/vim73/plugin/zipPlugin.vim 또는 :runtime plugin/zipPlugin.vim)을 소스로 사용할 수 있습니다. AFAIK 플러그인이 두 번째로 로딩되는 것을 막지는 못하지만,이 플러그인이 가드를 사용하고 있기 때문에 두 번째 소스가 될 때 CPP 리셋 라인을 계속 진행하지 않습니다. 당신이 그 코드를 보면 당신은 그것을 복원 후 cpoptions 설정을 저장하고 있는지 볼 수 있습니다 : 당신의 zipPlugin.vim 내와 같은 경우에, 다음이 문제의 원인이 아니라고

참고. vim과 함께 배포 된 다른 플러그인은 똑같이 수행해야하거나 cpoptions을 전혀 건드리지 않아야하므로 위의 권장 사항을 잊어 버릴 수 있습니다. 먼저 라인 set nocompatible (또는 set nocp) (있는 경우)이 vimrc에있는 첫 번째 줄인지 확인하는 것이 좋습니다. 이 옵션을 설정하면 많은 다른 옵션이 기본값 (예 : cpoptions)으로 재설정되므로 다른 수정 옵션보다 먼저 해야합니다.

업데이트 : 업데이트 : vimrc에 대한 링크를 제공했지만 위와 같은 문제가없는 것으로 나타났습니다. verbose set compatible?을 확인하려고, 다음 명령을 사용하여 정력을 시작하려고 :

vim --cmd 'let g:sourced_files=[] | autocmd SourcePre * if !empty(g:sourced_files) && stridx(&cpo, "$")==-1 | echomsg "cpo does not contain dollar sign after loading ".g:sourced_files[-1] | set cpo+=$ | endif | let g:sourced_files+=[expand("<amatch>")]' 
당신은 여기에 몇 가지 잘못된 반응해야합니다

: 처음로드의 vimrc (/etc/vim/vimrc) : cpo가 설정되지 않았기 때문에, 어떤 플러그인

처럼로드를
if exists("loaded_thlnk") 
    finish 
endif 
let loaded_thlnk = 1 
let s:save_cpo = &cpo 
set cpo&vim 

" (This is to allow installation of thlnk.vim with just :runtime plugin/thlnk.vim 
" without leaving vim after having thrown all files into a plugin directory :) 
runtime! plugin/thlnkuri.vim 
runtime! plugin/thlnkarr.vim 
runtime! plugin/thlnkscm.vim 

: 여기 CPO는 플러그인이로드되기 전에 다시,하지만 마지막에

let &cpo = s:save_cpo 

따라서 정말 안전이 간다. 내 시스템에는 잘못된 긍정 만 있습니다 : cpo는 많은 플러그인에 의해 저장되고 복원되지만 플러그인은 복원이나 다른 것을 잊지 않습니다.

+1

@ZyX가 왜 이렇게 설명했는지,''cpoptions''가 원하는대로 설정되었는지 확인하는 방법은 다음과 같습니다 : 어떤 플러그인이든지 "손상"으로부터 보호하기를 원하는 설정을 파일에 넣으십시오 ''~/.vim/after/plugin /''에서.''~/.vim/after/plugin/myinvinciblesettings.vim''과 같이. ''vim''을 다시 실행하고'': scriptnames''의 결과를 봅니다 - vim이 순차적으로 소스 코드를 출력하는 스크립트 목록을 보여줍니다. – holygeek

+0

감사합니다. 매력처럼 작동합니다! –

관련 문제