Znajdź typ pliku załadowany do vima

224

Jak tylko załaduję dowolny plik w vimie, spróbuje wykryć plik i podświetlić go, jeśli to możliwe.

Chcę poznać komendę vim, która powie mi, która wtyczka ftplugin lub typ pliku / typ pliku jest vimem rozważającym wyróżnienie pliku.

ruturaj
źródło
Czy vim nie robi tego automatycznie?
ereOn
Jeśli umieścisz vimscript w ~ / .vim / ftplugin /, będzie on pobierał ten vimscript po załadowaniu pliku o odpowiednim typie pliku. Więc umieścić setlocal cursorlinew ~/.vim/ftplugin/python.vimi trzeba będzie bieżący wiersz wyróżnianie w plikach Python. Zobacz :help ftplugini:help after
idbrii

Odpowiedzi:

365

:set filetype?

Hobbs
źródło
39
Możesz zapisać kilka naciśnięć klawiszy i po prostu użyć:set ft?
Matthew Rankin
35
:se ft?- Wygrałem. ;)
sjas
39
:se ft? Wygrałem!
Fábio Santos,
SO wymaga minimalnej długości komentarza, więc może nie być oczywiste, że najkrótszy koniec kończy się po t. ? jest opcjonalne.
reergymerej
15

Możesz także dodać typ pliku do linii statusu lub tytułu okna, używając elementów %yi %Y. Widzieć

:help 'statusline'
:help 'titlestring'
Nefrubyr
źródło
2

Kiedy chciałem znaleźć typ pliku, to dlatego, że miałem rozszerzenie .ipy modyfikujące skrypt ipython. Powyższe pytania i odpowiedzi działały świetnie, aby zobaczyć, że rozszerzenie ipython nie było traktowane jako python (nieco oczywiste). Tak więc chciałem wymusić ustawienie typu pliku i znalazłem to na stronie vim helfpul. http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

Dodanie poniżej do .vimrc działa

au BufRead,BufNewFile *.ipy set filetype=python
Paweł
źródło
2

Ponieważ przede wszystkim zadajesz / przeszukujesz to pytanie, zakładam, że to robisz, ponieważ twój vim jakoś nie podkreśla automatycznie twojej właściwej składni, a ty próbujesz dowiedzieć się, dlaczego i jak to naprawić.

Polecenie :set filetype?w wybranej odpowiedzi w zasadzie pyta vima „hej, jakiego typu, twoim zdaniem, jest bieżący plik”. A jeśli vim nie wyświetla właściwego koloru / podświetlenia, najprawdopodobniej jego odpowiedzią jest wyświetlenie tego filetype=na dole konsoli, co oznacza, że ​​vim nie zna typu pliku. To tylko połowa twojego zadania.

Logicznie, następnym krokiem będzie powiedzenie vimowi „po prostu podświetl go używając (na przykład) składni ps1”. Robisz to pisząc :set filetype=ps1, teraz vim podświetli bieżący plik w stylu ps1 (pod warunkiem, że już pobrałeś odpowiedni plik składni PowerShell i umieściłeś go w ~ / .vim / syntax ).

W tym momencie prawdopodobnie odtąd będziesz chciał automatycznego podświetlania składni. Rozwiązaniem jest umieszczenie odpowiedniego skryptu wykrywającego w folderze ~ / .vim / ftdetect. Na przykład, jeśli chcesz podświetlić wszystkie skrypty PowerShell .ps1, .psm1 itp., Umieść ten plik w swoim ~ / .vim / ftdetect

To jest szczęśliwe zakończenie.

RayLuo
źródło