Я работаю над множеством различных C-проектов с уникальными стилями отступов. Как заставить Emacs выполнять настройки отступов для каждого проекта, не загрязняя деревья проекта исходными .dir-locals.el
файлами? Я хочу сопоставить проекты, используя их пути на диске.
indentation
artagnon
источник
источник
.dir-locals.el
. Может быть, коллеги хотели бы эту идею?Ответы:
.dir-locals.el
мой предпочтительный метод, когда это возможно, особенно когда он применяется ко всем пользователям Emacs, работающим над этим проектом.Для проектов, которые враждебны пользователям Emacs или иным образом не хотят
.dir-locals.el
файлы, или если вы хотите иметь личные предпочтения (предположительно, не отступы), которые не должны применяться к другим людям, если вы используете распределенную систему контроля версий, опция всегда работать в личных ветках, которые есть у вас.dir-locals.el
. Однако я не знаю, как использовать DCVS, чтобы сделать это безболезненно.Другой вариант - не проверять
.dir-locals.el
файлы. Например, с помощью git добавьте его в.git/info/exclude
. Конечно, это больно, когда у вас много проверок проекта.То, что я сделал, где
.dir-locals.el
не было выбора, - это добавление ловушки, которая сравниваетbuffer-file-name
известные значения.(Предупреждение: код набран прямо в моем браузере, поскольку у меня нет доступа к моему настоящему коду прямо сейчас.)
источник
.dir-locals.el
в.git/info/exclude
кажется хорошим вариантом..gitignore
в корневой каталог проекта?.dir-locals.el
свой глобальный gitignore по адресу~/.config/git/ignore
.Вы не можете убедить вышестоящие проекты, такие как llvm и linux, зарегистрироваться
.dir-locals.el
.Выработанное решение проблемы:
Используется следующим образом:
У меня есть похожий макрос для других языковых режимов.
источник
Распространение .dir-locals.el в разных проектах сложно поддерживать.
Мой способ довольно прост, поместите весь код в один ~ / .custom.el.
По сути, код будет запускаться в режиме prog-mode-hook (или your-what-major-mode-hook) и выполнять следующие действия:
Я успешно использую этот метод в течение одного года.
Вот код (вызовите my-setup-develop-environment в prog-mode-hook):
источник
Нормальный способ сделать это с помощью
.dir-locals
. Вот почему они были введены в первую очередь. Почему бы нет? Насколько мне известно, большинство инструментов, связанных с проектом, обычно хранят свои конфиги в корневом каталоге проекта: git, svn, Eclipse и многие другие ...Только не забудьте добавить файл
.gitignore
или подобное.источник
Я использую угадайку style.el .
Он очень хорошо угадывает предпочтительный стиль отступа файла.
источник