그렇지 않으면 oneliner를 끝내면


11

내 oneliner가 vimrc있지만 작동하지 않습니다.

if has("patch-7.4.710") | set listchars+=space:· else | set listchars+=trail:· | endif

VIM은 말합니다 :

E518: Unknown option: else

도와주세요 ?

답변:


19

당신은 다른 둘 필요가 |전에 else, 그렇지 않으면 정력이 명령이 생각하는 것 set listchars+=space:· else대신에 두 개의 별도의 명령으로합니다. 그 때문에 오류 메시지가 나타납니다. else이 명령에 대한 알 수없는 옵션입니다 set.

올바른 구문은 다음과 같습니다.

if has("patch-7.4.710") | set listchars+=space:· | else | set listchars+=trail:· | endif

|전, 후에, 어디에 배치 해야 else합니까? 자, 이제 둘 다 :-D입니다. 고마워요 :)!
SebMa

2
@SebMa : vim이 명령어 1 if has("patch-7.4.710"), 명령어 2 set listchars+=space:·, 명령어 3 else, 명령어 4 set listchars+=trail:·및 마지막 명령어와 같은 여러 줄로 작성된 코드를 구문 분석하는 방법을 생각하십시오 endif. 는 다음과 같이 |별도의 지시에 사용되는 그 전에 하나 넣어 단지 논리적이다 else: 후 한
statox

1
언어를 아는 한 논리적입니다. C에서는 ;명령어를 분리하는 데 사용합니다. C에서는 else명령이 아니며, 그렇지 않으면 그 ;이후에 있을 수 있습니다 :)
SebMa

1
VimScript의 의미는 C @SebMa보다 쉘 스크립팅에 훨씬 가깝습니다.
Martin Tournoij

1
@SebMa 아니요, 그러나 "(거의) 제어 구조를 포함한 모든 것이 명령입니다"라는 의미는 VimScript와 비슷하며 C와 다릅니다.
Martin Tournoij
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.