Czy istnieje sposób na umieszczenie komentarza w pliku, który vim przetworzy w celu ustawienia rodzaju pliku?

30

Na przykład, jeśli chcę, aby vim rozpoznał plik o nazwie gitconfig(bez wiodącego .) filetype=gitconfig, czy istnieje sposób na wskazanie tego w komentarzu lub czymś podobnym w samym pliku? Uwaga: Chcę, aby działało to w różnych systemach, więc modyfikowanie plików startowych vima nie jest preferowane.

Murali Suriar
źródło

Odpowiedzi:

45

To brzmi jak modelinefunkcja (patrz pomoc online). W gitconfig możesz mieć modeline jak poniżej, na początku lub na końcu pliku:

# vi: ft=gitconfig

Wymaga to włączenia modelin i ponieważ mogą one stanowić zagrożenie bezpieczeństwa, są one domyślnie wyłączone w wielu systemach.

Innym podejściem, które może wymagać nieco więcej pracy, jest utworzenie .vimpliku zawierającego

au BufRead,BufNewFile */gitconfig setfiletype gitconfig

i ~/.vim/ftdetectumieść go we wszystkich swoich systemach.

jw013
źródło
Idealna, modelina była tym, czego szukałem. modeline jest włączona, ale wygląda na to, że coś innego w mojej konfiguracji przeszkadza. Jeśli umieściłem sugerowaną linię na początku pliku, to po ponownym otwarciu set filetype?ujawnia typ pliku „conf”.
Murali Suriar
Może możesz użyć, :verbose set filetypeaby zobaczyć, skąd confpochodzi ta wartość - domyślam się, że gdzieś są domyślne ustawienia systemu typu pliku vima.
jw013,
najwyraźniej był to ostatni zestaw z /usr/share/vim/vim73/filetype.vim. Dlaczego wykrywanie typu pliku na poziomie systemu ma zastępować dyrektywę, którą umieściłem w samym pliku?
Murali Suriar
czy korzystałeś z vima jako root? jeśli tak, myślę, że modeline nie ładuje się.
elias
Sprawdź także wartość modelinesopcji. :set modelines?Jeśli jest ustawiony na zero, nie przetworzy modeliny.
Christian Long,
1

Możesz utworzyć plik składni i umieścić go w share/syntaxkatalogu vima (w Debianie Lennym to /usr/share/vim/vim71/syntax(dystrybucja może się różnić)).

Dokumentacja dotycząca formatu składni Vima znajduje się tutaj: http://vimdoc.sourceforge.net/htmldoc/syntax.html

Być może znajdziesz gdzieś gotowy plik składni w Internecie, ale zostawię to jako ćwiczenie dla ciebie.

bahamat
źródło