그렇지 않으면 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.