Zgodnie z przyjętą odpowiedzią na to pytanie , próbuję użyć modelin w vimie, aby wymusić wykrywanie typu pliku w niektórych plikach.
Na przykład u góry pliku o nazwie gitconfig
(uwaga nie ma wiodących .
) mam następujący wiersz:
# vim: set filetype=gitconfig :
modeline
jest włączony w moim systemie. Jednak gdy otwieram plik w vimie, set filetype?
zwraca conf
raczej niż oczekiwany gitconfig
.
Czy to możliwe, że inne części mojej konfiguracji vima (np. Filetype.vim) powodują to dziwne zachowanie?
Edytowane w odpowiedzi na komentarze:
set compatible?
zwroty nocompatible
set modeline?
zwroty modeline
verbose set filetype?
zwroty:
filetype=conf
Last set from /usr/share/vim/vim73/filetype.vim
Nie rozumiem, dlaczego ogólnosystemowa wtyczka typu pliku zastępuje to, co ustawiłem w samym pliku.
Ostatnia uwaga: jest to wersja Vima 7.3 dostarczana z OSX.
Najnowsza wersja MacVim działająca w tym samym systemie, korzystająca z tego samego systemu, .vimrc
zachowuje się zgodnie z oczekiwaniami, z set ft?
powrotem filetype=gitconfig
.
set modeline?
czy nie drukuje sięnomodeline
?compatible
jest jej ustawienie. Warto też to sprawdzić.Odpowiedzi:
Po pewnym czasie okazuje się, że system
vimrc
dostarczany z OSX ustawiamodelines
zmienną (zwróć uwagę na końcowe) na 0. Ta zmienna kontroluje liczbę wierszy w pliku, które są sprawdzane pod kątem poleceń ustawiania. Ustawienie modeliny na niezerową wartość w moim.vimrc
rozwiązało problem.Pełny wynik dla ciekawskich: wynik
vim --version
zachęcił mnie do sprawdzenia vimrc systemu:Patrząc na vimrc systemu:
Doprowadził mnie do
modelines
zmiennej. Wygląda na to, że MacVim nie pobiera tego pliku systemowego (być może szukasz systemowego GVIMRC?:help startup
Nie jest jasne).źródło
Aby to działało na moim systemie macOS, musiałem zdefiniować kilka ustawień w ~ / .vimrc:
Gdzie „ modeline ” umożliwia użycie ustawień w pliku, a „ modelines = # ” ustawia liczbę linii, które vim / vi będzie sprawdzać pod kątem ustawionych poleceń.
Po ustawieniu tych parametrów mogłem użyć składni takiej jak linia poniżej w moich plikach, aby zastąpić ustawione parametry.
źródło