Как мне указать настройки Vim для всех файлов в текущем каталоге?
Идеальным решением было бы, если бы Vim искал и читал .vimrc в текущем каталоге перед поиском ~ / .vimrc и применял настройки для всего дерева.
Я видел плагин , но это означает, что применяемые настройки не прозрачны, поскольку они требуют установки плагина. Напротив, модельная строка прозрачна, поскольку независимо от vimrc пользователя или конкретного вызова vim, настройки модельной строки будут применяться для этого файла.
Я пробовал
- размещение .vimrc в рабочем каталоге
:so vimrc
в моделине.
Полагаю, оба не работают по соображениям безопасности. Мне не нужна полная мощность vimrc; привязки к настройкам, приемлемым для модельной линии, было бы достаточно. Моя цель - облегчить vimmers принятие стандартов кодирования в проекте.
Ответы:
Я сторонник плагинов . По нескольким причинам:
Кстати, решение sth можно использовать для создания одного файла конфигурации. Это очень похоже на подход к плагину, за исключением того, что .vimrc должен быть паразитирован неглобальными параметрами, и он не поддерживает легкую поддержку нескольких / общих файлов конфигурации.
источник
Вы можете вставить что-то подобное в
$VIM/vimrc
источник
Я настоятельно рекомендую не использовать
set exrc
Даже с
set secure
* nix vim все равно будет запускать автокоманды, оболочку и т. Д., Если файл принадлежит вам. Так что, если вы отредактировали файл в этом архиве, я отправил вам следующее.vimrc
:Вы, вероятно, будете менее удивлены, чем я.
источник
Это старый вопрос, но он кажется довольно естественным и постоянным.
Мое решение довольно простое. Я помещаю
.vimrc
файл в корневой каталог своих проектов. Первая строка.vimrc
файла обычно содержит исходный код~/.vimrc
, а затем добавляет нужную мне конфигурацию. Я использую псевдонимtvim='vim -u .vimrc'
и используюtvim
в своих личных каталогах проектов. «tvim» означает «доверенный vim», что означает, что если я запустил его в каталоге с.vimrc
файлом и что-то пойдет не так, мне некого винить, кроме себя, поскольку я прямо сказал, что доверяю ему. Кроме того, я храню группу из них подальше, чтобы иногда я мог просто софтлинковать тот, который мне нужен для определенного типа проекта.источник
source $HOME/.vimrc
с моего локального компьютера.vimrc
, Vim жалуется, что не может найти мои общесистемные установленные плагины (в данном случае патоген;execute pathogen#infect()
команда поверх моей$HOME/.vimrc
не работаетUnknown function ...
). Как я могу это исправить?Размещение .vimrc в рабочем каталоге на самом деле поддерживается, но по умолчанию отключено. См
:h 'exrc'
и:h startup
для деталей, установка'exrc'
позволит чтение.vimrc
из текущего каталога.Также рекомендуется
:set secure
при использовании этого. Это блокирует:autocmd
, обрабатывает команды и записывает их.vimrc
в текущий каталог.Еще одна вещь, на которую, возможно, стоит обратить внимание, - это настройка session (
:h session
) со стандартным представлением и настройками для проекта.С учетом всего сказанного, я, вероятно, выбрал бы вариант плагина, подробно описанный самим Люком Эрмиттом.
источник
Чтобы свести к минимуму риски безопасности с ЛЮБЫМИ функциями "автозапуска" для НИЧЕГО в наши дни, могу ли я посоветовать вам использовать существующие функции vim вместо плагинов (переносимость багажа)?
Например.
Файл vimrc моей локальной папки называется "_gvimrc" (специально). Это снижает вероятность того, что такие люди, как фен, будут развлекаться за наш счет. :-)
В свой файл $ VIM / .vimrc я вставил:
в конце.
Я использую «filereadable ()» вместо «fileexists ()», так как последний имеет некоторую причуду при попытке открыть несколько (10+) файлов одновременно (не знаю почему).
Конечно, вы можете указать свое собственное уникальное имя файла, чтобы еще больше запутать потенциальных нарушителей спокойствия. Например, "_mygvimrc", "_gobbledygook" и т. Д. Вам просто нужно выбрать одно стандартизированное имя и соответственно указать его в вашем $ VIM / .vimrc. Использование внутренних компонентов vi / vim исключает проблемы с переносимостью. НО, НЕ НАЗЫВАЙТЕ его .vimrc (или _vimrc), чтобы предотвратить рекурсивный поиск источников, если вы позже редактируете файл $ VIM / .vimrc с помощью vim.
Использую его с Windoze 98SE, через Windork XP Pro, а теперь и Windorkier 7 (уже 5+ лет). Я отмечу список файлов .txt в проводнике, а затем использую «Редактировать с несколькими Vim», что приведет к одновременному открытию нескольких окон vim. По работе я делаю это несколько раз в день, ежедневно. Все файлы обрабатывались тем, что я установил в моем локальном _gvimrc.
источник
Предполагая, что люди не добавляют файлы каждые несколько дней, вы, вероятно, можете добавить модельную строку вверху каждого файла. Фактически, если ваша система контроля версий позволяет это, вы, вероятно, могли бы применить правило, согласно которому каждый файл должен иметь модельную строку при его регистрации.
источник
Я согласен с подходом плагинов по соображениям безопасности.
Есть очень хороший плагин, о котором еще не упоминалось. Это позволяет вам использовать
.lvimrc
в каталогах вашего проекта.Попробуйте "localvimrc":
http://www.vim.org/scripts/script.php?script_id=441
https://github.com/embear/vim-localvimrc
источник
Используйте "editorconfig"
Если типы стандартов кодирования, которые вы хотели бы применить, связаны со стилем отступа, размером табуляции, форматом файла и кодировкой, то вы можете изучить «editorconfig» , который является стандартом для разных редакторов, чтобы указать такие настройки в конкретный проект, и пусть все редакторы следуют этой конфигурации.
Спецификация "editorconfig" позволяет проектам запрашивать различные настройки в зависимости от расширений файлов или имен в рамках проекта. (Таким образом, у вас могут быть файлы Makefile с использованием TAB, ваши сценарии Python с использованием 4 пробелов и сценарии оболочки с использованием 2 пробелов для отступов.)
Вам понадобится плагин для использования "editorconfig" в Vim. Официальный сайт предоставляет один, но лично я бы рекомендовал sgur / vim-editorconfig , который написан на чистом Vimscript, поэтому вам не нужно слишком беспокоиться о внешних зависимостях.
Поскольку "editorconfig" нацелен на совместимость с несколькими редакторами, он довольно ограничен в том, что он делает, поэтому, если вы хотите, чтобы были согласованные пробелы, формат файла (DOS против Unix) и кодировка (Unicode utf-8 и т. Д.), Тогда "editorconfig" " для вас.
источник
Попробуйте vim-localrc
https://github.com/thinca/vim-localrc/blob/master/doc/localrc.txt
источник
Я посмотрел на существующие плагины, и мне не понравился ни один из них, поэтому я написал простую функцию, которая использует vim-fugitive . Преимущество этого заключается в том, что он знает, что корень проекта всегда является корнем репозитория, и, кроме того, я могу хэшировать файл, чтобы сохранить таблицу доверия. Просто поместите в свой
.vimrc
файл следующее.Если
!
параметр установлен вviminfo
настройке, тоSAFE_VIMRC
словарь будет сохраняться между запусками (обратите внимание на^
добавление параметра, чтобы он не испортилn
параметр).источник