4

Меня втягивает в войну IDE в офисе, где несколько пользователей имеют root-доступ на наших серверах и хотят иметь все по-своему с VIM. К сожалению, наши серверы заблокированы настолько, что если вы хотите что-то сделать, вам нужен root-доступ. Очевидно (хотя это явно осуждается), мы устали набирать sudo перед каждой вводимой командой, что потребовало бы от нас постоянно вводить наши удивительно сложные пароли, которые нам передаются снова и снова, поэтому, естественно, мы все просто выполняем sudo su - команда при входе в систему, чтобы избежать всего этого.

Конечно, когда речь идет о VIM и пользовательских файлах .vimrc, мы часто наступаем на чей-то другой пользовательский файл .vimrc, и у нас в этих файлах есть какая-то изумительная функциональность, которая есть у пользователей, которая может перезаписывать функциональность, о которой мы не имеем представления тем более терпение учиться тоже.

Когда вы являетесь пользователем root на компьютере с Linux, есть ли у всех нас способ сохранить наш файл .vimrc без необходимости перезаписывать файл каждый раз, когда кто-то хочет использовать VIM? В идеале у нас много виртуальных машин, на которых установлена VIM, поэтому было бы лучше использовать универсальное решение на всех серверах, а наши домашние каталоги, предназначенные для пользователей Microsoft Windows, смонтированы на серверах в каталоге /home /username.

Любые рекомендации для размещения этого?

2 ответа2

5

используйте sudo -i чтобы получить доступ к корневой оболочке с загруженной средой текущего пользователя.

man sudo:

Опция -i (имитировать начальный вход в систему) запускает оболочку, указанную в записи passwd (5) пользователя, от имени которого выполняется команда. Аргумент имени команды, данный оболочке, начинается с -, чтобы указать, что оболочка запускается как оболочка входа в систему. sudo пытается перейти в домашний каталог этого пользователя перед запуском оболочки. Он также инициализирует среду, оставляя TERM без изменений, устанавливая HOME, SHELL, USER, LOGNAME и PATH и сбрасывая все остальные переменные среды. Обратите внимание, что поскольку используемая оболочка определяется до синтаксического анализа файла sudoers, параметр runas_default в sudoers будет указывать пользователя для запуска оболочки, но не будет влиять на то, какая оболочка на самом деле запущена.

2

Я могу придумать 3 варианта. Первый, наверное, самый простой.

  1. вызовите vim, как показано ниже:vim -u /path/to/custom/.conifg fileToEdit
    Человек Вход:

    -u {vimrc}  Use  the commands in the file {vimrc} for initializations. 
    

    Все остальные инициализации пропускаются. Используйте это, чтобы редактировать особый вид файлов. Его также можно использовать для пропуска всех инициализаций, указав имя "НЕТ". Смотрите ":help initialization" в vim для более подробной информации.

      -U {gvimrc} Use the commands in the file {gvimrc} for GUI
    

    инициализация. Все остальные инициализации GUI пропускаются. Он также может быть использован для пропуска всех инициализаций GUI, давая имя "NONE". Смотрите ":help gui-init" в vim для более подробной информации.

  2. sudo -i как было указано @knittl https://stackoverflow.com/questions/6471592/user-unique-vimrc-file-for-servers-as-root-user/6471766#6471766

  3. и, наконец, https://stackoverflow.com/questions/1031396/how-to-share-one-vimrc-file-among-multiple-clients/1031624#1031624, который предлагает хранить набор личных конфигурационных файлов в git или другом контроле версий система. Поэтому каждый пользователь может проверить, что ему нужно при входе в систему. Кроме того, вы можете сохранить историю ваших изменений. Контроль версий никогда не бывает плохой идеей.

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