2011-01-06 5 views
24

別のユーザーの.vimrcファイルを参照(または「ソース」)する方法はありますか?カスタム.vimrcファイルを参照/ソースする方法

管理者のユーザーIDにkuu(ケルベロスのセキュリティトークンを使用するsuの亜種)を使用する場合は、個人用の.vimrcファイルを使用したいと思います。

admin IDが複数のユーザーによって共有されているため、管理者の既存の.vimrcファイルを上書きしません。 vimので

答えて

20

を参照してください。この方法で、vimを起動するたびに-uを渡す必要はありません。

あなたが(例えば、誰かにあなたがセキュリティ上の問題を作成することができる/home/user/.vimrc使用する場合.vimrcは、任意のコマンドを実行できることに注意してください(もちろん代わりにエイリアスを行うことができますが、それは、例えばとvipwを助けにはなりません)あなたのユーザーアカウントを侵害し、.vimrcを変更して、次にrootとしてファイルを編集するときにrootになります)。もちろん、既知の安全なコピーを~root/のどこかに保管することができます。

~root/.bashrcに何かを設定して、MYVIMRCを管理者ごとに自動的に設定することもできます。

+0

これはありがとう、それは私が尋ねたものです。また、セキュリティ上の警告に感謝します。 –

+0

は "vim"では動作しますが、 "vi"では動作しません – Tagar

+0

@Ruslanまあ、* .vim * rcファイルに関する質問です... EMACSでも動作しません。またはジョー、またはナノ、またはMicrosoft Word。 (そして、あなたがvimを 'vi'と呼んでいれば、あなたはそれを互換モードで実行するように要求しています)[私はおそらくあなたが言うことを誤解しているでしょう。明確にしてください。] – derobert

5

:source /path/to/your/.vimrc

+0

それは十分ではありません:&RTPがこのように更新されない - まあ、当然の.vimrcが&RTPをリセットすることができます。 –

3

私は今まで、このを数回試みましたし、これは私のために正常に動作するようです。次のようなものであるのvimのエイリアスを定義します。

alias vim="HOME=~yournormaluser vim -c 'let \$HOME = \"$HOME\"'" 

何これが行うことは、あなたの$HOME/.vim/環境を使用してにvimのトリックで、まだそれほど:e ~/something.txtのような物事は、まだ使用するvimの中から$HOMEをリセット管理者ユーザの$HOME

これには、管理者~/.vimrcをまったく変更する必要がないという利点があります。

+0

この場合も、adminユーザーを使用するすべてのユーザーにvimのエイリアスが適用されます。私が過去にこれをしたとき、私は私の環境が私の​​ '$ USER'と' '$ USER/.aliases 'からsu'ingしていることを知っていたので、これで取り除くことができました。たぶんこの情報を何とか使うことができます。 –

+0

&rtp => +1 –

+0

randy_gvimエイリアスを正しく設定しているようですが、他のものは使用しそうもありません。 –

18

パラメータ-uを試して、代替構成ファイルへのパスを指定します。例えば

vim -u /home/jesse/myvimrc

はあなたがMYVIMRC環境変数を使用することができますhttp://linuxcommand.org/lc3_man_pages/vim1.html

+1

残念ながら、 'man -u':' -u {vimrc}初期化にファイル{vimrc}のコマンドを使用します。 'vim -u〜/ vimrc'は' vim -u〜/ vimrc'と同じではないことがわかりました。これは、これまでのところ良くなっていますが、vimを特殊モードにして ' vim'。私のために働いたのは、bashシェル特有の '<(...)'キャプチャを使って 'vim -u <(echo source/usr/share/vim/vimrc; cat〜/ .vimrc)'でした。 – gmatht

1

個人的には、私はRootの.vimrcを私のものにシンボリックリンクします。 BASHから(ルートとして):

ln -s /home/<me>/.vimrc /root/.vimrc

しかし、あなたはそれに何があるかについて注意する必要があります。

2

私はあなたの最初の所有者があなたのttyを所有していると仮定しています。あなたは合理的に安全なカスタマイズvimrcファイルを保つことができる/root/.vimrc.$USRNAMEにカスタマイズしたルートの.vimrcを配置することにより

stat -c'%U' `tty` 

:もしそうなら、あなたがあなたの最初のユーザーを取得することができます。あなたも他のことをすることができますが、私はそれをあなたの想像力に任せます。

方法1 - あなたの/root/.bashrc &煙でこれを置くこと:

# Source a custome vimrc if it exists 
mytty=`tty` 
initial_user=`stat -c'%U' $mytty` 
custom_vimrc="/root/.vimrc.$initial_user" 
if [ -f $custom_vimrc ]; then 
    export VIMINIT="source $custom_vimrc" 
fi 

方法2 - あなたの/root/.vimrcに似た何かを置く(よりよい解決策あなたはkshのを使用する場合がありますので) 。

誰でも方法2を理解できれば、投稿を歓迎します。私は動機が不足しています。

5

前述のようにプラグインなしで別の.vimrcファイルを使用し、.bash_profileなどでエイリアスを追加します。

alias svim='vim -u ~/.vimrc_simple' 

は本当に私は、次のことを好む:

alias vvim='vim -u ~/.vimrc_vundle' 

軽量コマンドとしてvimを保つために、プラグインのロードがプログラムのインスタンスを遅くするようだと。

1

方法2 -

をの.vimrcに加えが
tty違うものを試してすることはできません。また、system("who am i")どちらも(VIM-関数内から使用されたとき、彼らは空に出てくる)ので、この方法では、はるかに長いです。任意のショートカットが

"Local .vimrc for the user 
" 1. get the user, which used su 
" 2. we can load his .vimrc.<user> 
" from $HOME (from where we have sudo'ed in) 
let b:term = substitute(system ("ps T | grep ' ps T$' | sed -e 's/^ *//' | cut -d ' ' -f 2 "), "\n", "", "") 
let b:user = substitute(system ("who | grep ".b:term." | cut -d ' ' -f 1 "), "\n", "", "") 
let b:file = $HOME."/.vimrc.".b:user 
if filereadable(b:file) 
    execute 'source '.b:file 
endif 
0

歓迎している私は、私は私の.vimrcにrootとしてナビゲートするためにsudoを使用するすべてのユーザーを強制することなく、当社のサーバー上の自分の.vimrcを望んでいたので、プラグイン年前に作成しました。

私のプラグインは、@ULickが提供したプラグインとまったく同じです。

GIST

関連する問題