2

У меня есть псевдоним, определенный alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.vimrc' но когда я набираю svi svi myfile я получаю

Обнаружена ошибка при обработке /home/jeff/.vimrc:
строка 1:
E117: неизвестная функция: патоген # заражение

Кажется, мне нужно принудительно заставить vim сканировать мой каталог .vim перед выполнением call pathogen#infect() Как мне это сделать, и вообще, как я могу убедиться, что при запуске sudo vim я получаю ту же среду, что и я? просто запустив vim?

2 ответа2

4

как я могу получить свою обычную инициализацию vim при выполнении sudo vim?

Используя $ sudo -e filename вместо $ sudo vim filename .

Эта команда будет:

  1. спросите ваш пароль (если этого требует политика безопасности sudoers);
  2. сделать копию имени filename в /tmp/ ;
  3. откройте его, как вы, с первым найденным редактором, проверив следующее по порядку: $SUDO_EDITOR , $VISUAL , $EDITOR и, наконец, список редакторов, указанный в /etc /sudoers;
  4. скопируйте его обратно в исходное имя файла при записи.

Обратитесь к man sudo и man sudoers для получения дополнительной информации.

1

Хотя я намерен принять ответ @ romainl в качестве предпочтительного решения (после того, как он немного его подправил), я предпринял еще одну попытку при поиске решения для ошибки, которую я получаю, потому что я ненавижу его, когда компьютеры становятся лучше меня.

Оказывается, ошибка связана с разрешением опции vim runtimepath при запуске от имени пользователя root. Поэтому, чтобы исправить ошибку, я слегка изменил свой псевдоним на alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.svimrc' и вставил следующие три строки в / главная / Джеф / .svimrc

set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after,/home/jeff/.vim
source /etc/vimrc
source /home/jeff/.vimrc

Я больше не получаю ошибку, и мои пользовательские вещи, кажется, работают (пока). Но если я столкнусь с какими-либо другими глюками, я буду внимательно изучать :help initialization еще раз, чтобы увидеть, что еще должно войти в мой файл .svimrc ....

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