2013-01-31 2 views
0

MacVim의 colorschemes 목록을 통해 반복 매핑을 설정하고 싶습니다.변수를 MacVim : colorscheme 함수에 전달할 수없는 이유는 무엇입니까?

이상적이 같은 색조의 배열을 가질 것이다 :

colorscheme s:schemes[s:schemeindex] 

그러나이 상기 라인 :

let s:schemes = ['zellner','ron','morning','murphy','peachpuff','torte'] 

하고이 배열의 인덱스에 색상 구성표를 설정 함수 작동하지 않습니다. 왜?

function SwitchScheme() 
    if s:schemeindex == 0 
     colorscheme zellner 
     s:schemeindex = 1 
    elseif s:schemeindex == 1 
     colorscheme ron 
     s:schemeindex = 2 
    ... 
    endif 
endfunction 

내 질문은,이 작업을 수행 할 수있는 청소기 방법이 :

대신, 나는 잘 작동 해결 방법을 사용합니까? colorscheme setter 함수에 변수를 전달하고 싶습니다. 그러나 이것은 작동하지 않는 것 같습니다.

이러한 체계 이름 상수가 있습니까? 그렇다면 어떻게 이들을 변수에 할당합니까?

감사합니다.

답변

1

:colorscheme은 나머지 행을 문자 그대로 취하는 즉, 인수로 VimL 표현식을 사용할 수 없다는 점에서 :source과 같이 일부 항목과 마찬가지로 제한적입니다. 이 제한은 일반적으로 :execute을 사용하여 해결됩니다.

execute 'colorscheme '.s:mycolors[current] 

이것은 a color scheme switcher posted at the Vim Tips wiki에서 비롯됩니다.

관련 문제