başka endif oneliner


11

Bu oneliner'ım var vimrcama işe yaramıyor:

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

VIM diyor ki:

E518: Unknown option: else

Bana yardımcı olabilir misiniz ?

Yanıtlar:


19

Başka koymak gerekir |önce elseaksi vim komut olduğunu düşünürler set listchars+=space:· elseyerine iki ayrı komutların. Bu yüzden hata mesajını aldınız: elsekomut için bilinmeyen bir seçenektir set.

Doğru sözdizimi şöyledir:

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

Nereye |, ne önce, ne sonra yerleştirmek için mücadele ediyordum else? Şimdi, ikiside :-D. Çok teşekkürler :) !
SebMa

2
@SebMa: Birkaç satırda yazılmışsa vim'in kodunuzu nasıl ayrıştıracağını düşünün: komut 1 if has("patch-7.4.710"), talimat 2 set listchars+=space:·, talimat 3 else, talimat 4 set listchars+=trail:·ve son talimat endif. Gibi |ayrı talimatlar için kullanılır daha önce bir tane koymak için sadece mantıklı else:) sonra ve bir
statox

1
Dili bildiği sürece mantıklı. C'de, ;talimatları ayırmak için kullanırız . C elsebir talimat değil, aksi takdirde ;ondan sonra olurdu :)
SebMa

1
VimScript'in anlambilimi kabuk komut dosyalarına C @SebMa'dan çok daha yakındır.
Martin Tournoij

1
@SebMa Hayır, ancak "(kontrol yapıları da dahil olmak üzere her şeyin bir komut olduğu" anlambilimi VimScript'e (ve C'den farklı) benzer.
Martin Tournoij
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.