Czy jest możliwe i użyteczne podzielenie vimrc?

22

Zgodnie z tytułem, czy można podzielić vimrcplik na kilka pod-plików? Przechowywać osobne pliki dla grup ustawień, które dotyczą jednej rzeczy ? Ta sprawa może być cokolwiek, każdy rodzaj grupy zdefiniowanej przez użytkownika ustawień. Na przykład,

[zaktualizowany]

  • zachować wszystkie ustawienia związane z Pythonem (-mode)vimrc.python-mode ?
  • zachować ustawienia dla narzędzia Kalendarz dla vima vimrc.calendar?
  • zachować ustawienia kolorów w osobnym pliku?
  • przechowywać mapowania (inaczej skróty?) w osobnym pliku?
Nikos Alexandris
źródło
3
Odwrotna strona: grupowanie na podstawie lokalizacji zamiast na podstawie typu pliku. Zobacz vi.stackexchange.com/q/77/205
mur
Czy odpowiedź, której szukam, może znaleźć się gdzieś w linii na vi.stackexchange.com/a/3152/1963 ? Pliki źródłowe, które zawierają ustawienia, które chcę dla określonych rzeczy, których potrzebuję?
Nikos Alexandris,
Usunięto filetypetag - na razie może? Sprawia, że ​​czytelnicy myślą, że pytania dotyczą konkretnych typów plików, co nie jest prawdą.
Nikos Alexandris,
wydawało się właściwe, biorąc pod uwagę pierwotne pytanie.
mur
@muru Tak, nie martw się. Możemy to również dodać później. Dziękuję Ci.
Nikos Alexandris,

Odpowiedzi:

22

Tak, jest to możliwe i przydatne, a nawet uważane za najlepszą praktykę. Nazywa się je wtyczkami typu pliku w mowie Vima. Vim ma nawet wiele wtyczek typu pliku (jak również pliki wcięć i składni) dla kilku języków.

Musisz włączyć to w .vimrcpodobny sposób:

filetype plugin on

następnie umieść swoje specyficzne ustawienia typu pliku w pliku (tworząc nieistniejące katalogi), ~/.vim/ftplugin/python.vimaby wywołać ustawienia Pythona. Jest to również omówione w FAQ .

Aktualizacja (13.11.2015) Istnieje również inna możliwość (jeśli nie chcesz używać opcji specyficznych dla rodzaju pliku): Jeśli chcesz zgrupować niektóre opcje w określonym pliku, możesz użyć polecenia sourcelub runtime. Na przykład mój .vimrczawiera ten wiersz:

" This script contains plugin specific settings
source ~/.vim/plugins.vim
" This script contains mappings
source ~/.vim/mapping.vim
" additional helper functions:
source ~/.vim/functions.vim
" For abbreviations read in the following file:
source ~/.vim/abbrev.vim
Christian Brabandt
źródło
Fajnie, już to mam! Ale tak naprawdę nigdy nie miał bliskiego spojrzenia. Więc napompowałem vimrc. A co z ustawieniami, które nie dotyczą określonego rodzaju pliku?
Nikos Alexandris,
2
Możesz potrzebować :he autoloadi :he source? Sprawdź również tę odpowiedź stackoverflow.com/a/805242/1821490
Alex Kroll
@AlexKroll nie dotyczy wtyczek typu pliku.
Christian Brabandt,
@ChristianBrabandt za wszystko, czego chcesz. Możesz pobrać dowolny skrypt w .vimrc. Po prostu wstaw source my-funy-useful-script.vimwiersz w swoim, .vimrca Vim ładuje go po ponownym uruchomieniu (lub wydaniu :so $MYVIMRCpolecenia). :he writing-library-scriptsMoże ci również pomóc.
Alex Kroll,
@AlexKroll Myślę, że jest to bliższe odpowiedzi, której szukam. Czy zechciałbyś edytować obecną odpowiedź i ją rozwinąć? Lub udzielić osobnej odpowiedzi? Nie szukam tylko określonych typów plików. Mam nadzieję, że jest to jasne w moim pytaniu.
Nikos Alexandris,
5

Jest całkowicie możliwe robienie tego, co chcesz. Niektórzy mówili o wtyczkach typu pliku, które do tego dobrze działają.

Możesz jednak pobrać plik vimrc i plik vim, dzięki czemu możesz podzielić plik vimrc na dowolną liczbę plików. Po prostu źródło pliku i będzie działać. Jako przykład podajemy moje (prawdopodobnie niezbyt przydatne) pliki dot. https://github.com/dspecht/dotfiles/

Spector
źródło
Czy mógłbyś podać przykład tego, co zrobiłeś w swojej odpowiedzi i dlaczego to działa?
EvergreenTree,