sudo vim を実行したときに通常の vim 初期化を取得するにはどうすればよいですか?

sudo vim を実行したときに通常の vim 初期化を取得するにはどうすればよいですか?

エイリアスを定義しています が、入力するalias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.vimrc'svi myfile

/home/jeff/.vimrc の処理中にエラーが検出されました:
行 1:
E117: 不明な関数: pathogen#infect

実行する前に vim に .vim ディレクトリを強制的にスキャンさせる必要があるようです。call pathogen#infect() どうすればいいのでしょうか。また、一般的に、 を実行したときに、 を実行した場合とsudo vim同じ環境を確実に得るにはどうすればよいのでしょうかvim

答え1

sudo vim を実行したときに通常の vim 初期化を取得するにはどうすればよいですか?

$ sudo -e filenameの代わりにを使用します$ sudo vim filename

そのコマンドは次のようになります。

  1. パスワードを要求します (sudoers セキュリティ ポリシーで必要な場合)。
  2. filenameのコピーを作成します/tmp/
  3. それを開くあなたと同じように$SUDO_EDITOR、、を順にチェックして最初に見つかったエディタを使用し$VISUAL$EDITOR最後に /etc/sudoers で指定されたエディタのリストを使用します。
  4. 書き込み時に元のファイル名にコピーし直します。

詳細についてはman sudo、およびを参照してください。man sudoers

答え2

私は @romainl の回答を(彼が少し調整した後で)推奨される解決策として受け入れるつもりですが、コンピューターに圧倒されるのが嫌なので、自分が受けていたエラーの解決策をもう一度調べてみることにしました。

このエラーは、ルートとして実行しているときにvimオプションがどのように解決されるかに関係していることがわかりましたruntimepath。そこで、エラーを修正するために、エイリアスを少し変更しalias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.svimrc'、次の3行を/home/jeff/.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 ファイルに何を入力すればよいか、さらに詳しく調べるつもりです...

関連情報