Vim'in dosya tipini daha akıllı bulmasını sağlayan basit bir ayar var mı?


1

Vim, dosya adına ve modeline göre dosya tipini akıllıca tanır.

Ancak bu durumla başa çıkamıyor: Herhangi bir özel sonek olmadan bir dosyam var, diyelim ki somefile, c ++ kaynak dosyasına yumuşak bir bağlantı somefile.cpp. Vim sadece adını aramak somefileve sıradan bir metin dosyası olduğunu düşünüyorum.

Bu yüzden Vim'in dosya tipini daha makul bir şekilde yargılamasını mümkün kılabilir (örneğin, eki içeren dosya adının dosya tipini seçebilir) veya kullanıcının daha karmaşık bir durumda yargılayamayacağını seçip seçmemesini istemek mümkün mü?


1
Bu, sözdizimi vurgulama için mi? kullanarak sözdizimini vurgulamayı C olarak elle ayarlayabilirsiniz:set syn=c
Jeff

@Jeff Evet, sözdizimi vurgusuna ihtiyacım var. Ve bir dosyayı açtığımda sözdizimini manuel olarak ayarlamaktan rahatsız olmazdım. Sadece bu problemle başa çıkmak için genel bir yol arıyorum.
Hongxu Chen,

1
Aklıma gelen tek seçenek @Jeff'in bir ayarlaması, kısayol tuşuyla eşleştirilmesi. Zaten daha hızlı bir yöntem olarak.
nerdwaller

@HongxuChen Kalıcı bir çözüm sağlamak için cevabımı düzenledim
Jeff

1
Bir alternatif, tarif edilen yöntemdir :h new-filetype-scripts.
romainl

Yanıtlar:


2

Hızlı düzeltme

İlk tür için bir dosya açıyorsanız, yazın

: set syn = c

veya csözdizimi vurgulamasını değiştirmek yerine bazı diğer dosya türlerini kullanabilirsiniz.

Bu, sık sık düzenlediğiniz bir dosyaysa , dosyanızın üstüne bir modeline ekleyebilirsiniz .

/ * vim: sözdizimi = c filetype = c * /

Herhangi bir yorum türü diğer dosya türleri için çalışmalıdır, örn.

# vim: sözdizimi = python dosya tipi = python

Kalıcı çözüm

Dosyana bu satırı ekleyin .vimrc:

au BufNewFile, BufReadPre * eğer & syntax == '' | sessiz! execute (': set filetype ='. matchstr (çözün (@%), '. [^.] * $') [1:]) | endif

Şimdi, bir dosyayı uzantısız olarak açtığınızda, sembolik bir bağlantı olup olmadığını görmeye çalışacak ve hedef dosyayı almaya çalışacaktır. Aslında sembolik bir bağ ise, hedef dosyanın dosya türüne sözdizimini ayarlayacaktır. Aksi takdirde, hiçbir şey yapmaz.


1
Genellikle ' syntax' seçeneğini belirlerseniz ' ' seçeneğini ayarlamak gerekmez filetype.
Heptit

@Heptite ben çok düşündüm, ama habersiz olduğum bazı istisnalar olması durumunda sağladı
Jeff

Var, ancak normal bir konfigürasyonda bir kullanıcıyla karşılaşması çok olağandışı olurdu.
Heptit

@Jeff Sözdiziminin sözdizimi türünden başka bir dosya adını hedef olarak ayarladığını mı düşünüyorsunuz (bu durumda syntax=somefile.cppdeğil syntax=cpp)?
Hongxu Chen,

@HongxuChen evet ve gayet iyi çalışıyor.
Jeff,
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.