Soru filetype == tex ise


Bir dosyanın bir lateks dosyası olması durumunda .vimrc komutunu çalıştırmak istiyorum. Bence sözdizimi olan bir şey var, işe yaramıyor. Bir ipucu?

if &filetype=='tex'
    set spell
endif

25
2018-05-13 22:26


Menşei




Cevaplar:


İstediğinizi elde etmek için otomatik komutları kullanabilirsiniz:

autocmd BufNewFile,BufRead *.tex set spell

27
2018-05-13 22:30



@ user497208 Kullanmalısınız FileType olay ve :setlocal: autocmd FileType tex :setlocal spell: FileType etkinlik yapmanızı sağlar :set ft=tex farklı uzantılara sahip dosyada ve yazım denetimi yapılıyorsa, :setlocal spell Yeni tamponlar için varsayılan olan 'büyü' seçeneğinin global değerini değiştirmez. - ZyX
Benim durumumda aslında senin tavsiyen bana yardım etti, kullanmak istiyorum FileType event: `autocmd FileType tex: ... ' - Grzegorz Wierzowiecki
Teşekkürler adamım, istediğimi bulmak ve çoğaltmak için bunu kolaylaştırdı, ama bırakmanı önereyim * önünde .txt - Relic
Benim için @ZyX, kullanarak FileType Yardım sayfamı da yazım denetimi yapar, bu yüzden Loren'in cevabını seçtim. - Forethinker


Geçerli dosya türünü kontrol etmek ve düzenleme sırasında bir şeyler yapmak isteyenler için bu işe yarayacak:

if (&ft=='c' || &ft=='cpp')
    :!g++ %
endif

20
2017-09-26 19:53



Bu bir haritalama veya özel işlevde çalışır, ancak bir Tex dosyası olduğunda yanıtın bir eylemle ilgili olduğunu düşünüyorum. açıldı. - Ingo Karkat
Böyle bir şey kullanmaya çalışıyorum: let g:tex_flavor='latex' if &ft == "tex" set nonu endif  Ama hiçbir etkisi yok gibi görünüyor. - Eduardo Reis


Başka bir yol kullanmaktır index():

let fts = ['c', 'cpp']
if index(fts, &filetype) == -1
    " do stuff
endif

index() Bir dizgedeki bir öğenin ilk dizini arar ve döner -1 bulunamadıysa. Bu şekilde daha fazlasını ekleyebilirsiniz filetype Listenize değerler verin ve her dosya türü için daha fazla koşul eklemeyin.


7
2018-04-02 07:35