
エイリアスを定義しています が、入力する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
。
そのコマンドは次のようになります。
- パスワードを要求します (sudoers セキュリティ ポリシーで必要な場合)。
filename
のコピーを作成します/tmp/
。- それを開くあなたと同じように
$SUDO_EDITOR
、、を順にチェックして最初に見つかったエディタを使用し$VISUAL
、$EDITOR
最後に /etc/sudoers で指定されたエディタのリストを使用します。 - 書き込み時に元のファイル名にコピーし直します。
詳細については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 ファイルに何を入力すればよいか、さらに詳しく調べるつもりです...