2

Есть ли эффективный способ управления несколькими наборами конфигурации Vim?

Мне это нужно, потому что мне нужны разные наборы конфигурации для разных видов работ. Это зависит от того, пишу ли я текст или программирую на Python. Такие вещи, как автоиндентирование, подсветка синтаксиса, функции сочетаний клавиш и т.д. Должны быть разными.

Представьте, что у вас есть несколько файлов .vimrc и вам нужно всего лишь изменить режим Vim (с помощью ярлыка), чтобы переключаться между ними. Это то, что я хочу, за исключением того, что я предпочел бы, чтобы все это было в одном файле .vimrc (я бы все организовал хорошо, я использую свертывание). Различные разделы файла будут соответствовать различным наборам конфигурации.

Я погуглил, но не смог найти решение (возможно, из-за неправильной формулировки поискового запроса).

1 ответ1

4

В любом случае многие настройки (например, отступ) связаны с типами файлов . Вы также можете определить локальные отображения буфера и команды, поэтому некоторые части ваших требований просто требуют последовательного использования встроенных абстракций (читай :help ftplugin).

Что касается глобальных вещей, я бы порекомендовал сводить различия к абсолютному минимуму, так как это препятствует наращиванию мышечной памяти и эффективному редактированию "без размышлений". Есть несколько возможных реализаций, чтобы передать различительный флаг Vim при запуске:

  1. разделите .vimrc через $ vim -u {vimrc} . Но так как вы хотите сохранить все в одном файле, лучше использовать следующее:
  2. через переменную: $ vim --cmd "let pluginmode='python'" , затем используйте if g:pluginmode ==# 'python' ... else ... внутри вашего .vimrc.
  3. через переменную окружения $ PLUGINMODE=python vim , затем используйте, if $PLUGINMODE ...

Плагины

Многие плагины используют каноническую защиту включения g:loaded_{pluginname} , с помощью которой вы можете включить / отключить их в вашем ~/.vimrc . Также, если вы используете менеджер плагинов, вы, вероятно, можете поместить команды Bundle ... в условные выражения.

Динамический режим переключения

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .