Возможно ли и полезно ли разделить vimrc?

22

Согласно заголовку, возможно ли разбить vimrcфайл на несколько вложенных файлов? Хранить отдельные файлы для групп настроек, которые касаются одной вещи ? Эта вещь может быть что угодно, любой вид определенной пользователем группы параметров. Например,

[Обновлено]

  • сохранить все настройки, связанные с Python (-mode)vimrc.python-mode ?
  • сохранить настройки утилиты Календарь для vim в vimrc.calendar?
  • сохранить настройки цвета в отдельном файле?
  • сохранить сопоставления (иначе ярлыки?) в отдельном файле?
Никос Александрис
источник
3
Обратная сторона: группировка по местоположению, а не по типу файла. См. Vi.stackexchange.com/q/77/205
Муру
Может быть, ответ, который я ищу, будет где-то среди строк в vi.stackexchange.com/a/3152/1963 ? Исходные файлы, которые содержат настройки, которые я хочу для конкретных вещей, которые мне нужны?
Никос Александрис
Убрал filetypeтег - пока что может быть? Это заставляет читателей думать, что вопросы касаются конкретных типов файлов, а это не так.
Никос Александрис
это казалось уместным, учитывая оригинальный вопрос.
Муру
@muru Да, не беспокойся. Мы могли бы добавить это и позже. Спасибо.
Никос Александрис

Ответы:

22

Да, это возможно, полезно и даже считается лучшей практикой. Они называются плагинами файловых типов в речи Vim. И Vim даже поставляется с множеством плагинов файловых типов (а также файлов отступов и синтаксиса) для нескольких языков.

Вы должны включить это в вашем .vimrcвиде:

filetype plugin on

затем поместите ваши конкретные настройки типа файла в файл (создающий несуществующие каталоги), который называется ~/.vim/ftplugin/python.vimнастройками Python. Это также описано в FAQ .

Обновление (13.11.2015) Существует также другая возможность (если вы не хотите использовать параметры, специфичные для типа файла): Если вы хотите сгруппировать некоторые параметры в конкретный файл, вы можете использовать команду sourceили runtime. Например, my .vimrcсодержит эту строку:

" 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
Кристиан Брабандт
источник
Хорошо, у меня уже есть это! Но никогда не было пристального взгляда. Итак, я накачал vimrc. А как насчет настроек, которые не относятся к конкретному типу файлов?
Никос Александрис
2
Вам может понадобиться :he autoloadи :he source? Также проверьте этот ответ stackoverflow.com/a/805242/1821490
Алекс Кролл
@AlexKroll не для плагинов файловых типов.
Кристиан Брабандт
@ChristianBrabandt за все, что вы хотите. Вы можете найти любой скрипт в .vimrc. Просто вставьте source my-funy-useful-script.vimстроку в ваш, .vimrcи Vim загрузит ее после перезапуска (или :so $MYVIMRCкоманды). Также :he writing-library-scriptsможет помочь вам.
Алекс Кролл
@AlexKroll Я думаю, что это ближе к ответу, который я ищу. Не могли бы вы отредактировать текущий ответ и расширить его? Или сделать отдельный ответ? Я не ищу только определенные типы файлов. Я надеюсь, что это ясно в моем вопросе.
Никос Александрис
5

Вполне возможно делать то, что вы хотите. Некоторые другие говорили о плагинах файловых типов, которые хорошо работают для этого.

Но вы можете получить исходный код и файл .vim в вашем vimrc, чтобы вы могли разбить .vimrc на столько файлов, сколько захотите. Просто загрузите файл, и он будет работать. В качестве примера приведу мои (вероятно, не очень полезные) точечные файлы. https://github.com/dspecht/dotfiles/

Spector
источник
Не могли бы вы привести пример того, что вы сделали в своем ответе и почему это работает?
EvergreenTree