人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

macのcui環境でvimを使っています。vim filename としたときは編集画面上でブラウザからコピーしたテキストを貼り付けることができます。最初できなかったのですがvimrcに「set clipboard=unnamed」という記述を入れてできるようになりました。これで問題ないと思っていたのですが、sudo vim filename としたときにペーストできないことがわかりました。最初vimrcが読み込めてないのかと思い sudo vim filename -u /Users/username/.vimrcと明示的にvimrcを指定してみたのですが、状況は変わりませんでした。sudo vimで編集画面を開くとクリップボードからペーストできなくなるのを解決したいです。よろしくお願いします

●質問者: timestep
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●200ポイント ベストアンサー

明示的に vimrc を -u オプションで指定するときは、ファイル名よりも前に付けます。

sudo vim -u /Users/username/.vimrc filename 

これでうまくいかないようだったら、vim のバージョン情報を確認です。

sudo vim --version

ずらずらと出てくる情報の中で +clipboard となっている必要があります。
可能性は低いと思いますが、vim が複数入ってて、sudo で起動される方が -clipboard になっている、という可能性もあります。
# まず、無いと思いますけど


timestepさんのコメント
ファイル名よりも前に指定したらうまく行きました! バージョンの確認をしてみたところ a-kumaさんの説明にあるようにsudoで起動したときだけ-clipboardになっていました。 whereis vim で確認したところどちらも/usr/bin/vimを見ているようなので、片方だけ-clipboardというのが解せませんが。。 もし分かったらでいいのですが、MacOS1.6なんですがrootのbashrcやvimrcはどのファイルを編集すれば良いのかわかるでしょうか?

a-kuma3さんのコメント
root のホームディレクトリは、/ だったり /root だったりするのだけれど、mac はどうだろう... >|| % sudo env ||< ってやって、HOME の値を調べれば良いかな。 それとも /etc/passwd を見てみるか。 あ、こんなのがあった。 http://md.atwired.com/?eid=1523068 http://apple.stackexchange.com/questions/43688/sourcing-bash-profile-for-root-users /var/root/.profile に書いてあげれば良さそう。 MYVIMRC という環境変数が設定されていれば、そちらを .vimrc として読みに行くので、/var/root/.profile に >|| MYVIMRC=/Users/username/.vimrc ||< みたいにすると、root 用の .vimrc を用意しなくても良いはず。 vim が二つ入ってるかどうかは、以下の出力を比べてみれば分かる、と思います。 >|| % where vim % sudo where vim ||< もし二つ以上入ってるんだったら、そっちをみるように PATH を設定してあげれば良いのかな。 参考にする必要はないと思うけど、デフォルトで入ってる vim でクリップボードからコピペできんやん、って vim をインストールしなおした人たち。 MacPorts からインストールした人。 http://d.hatena.ne.jp/oxdb/20110813/1313210237 ソースからコンパイルした人。 http://tell-k.hatenablog.com/entry/2012/02/17/012257 あと、ファイルが root 権限でいじれれば良い(*)なら sudoedit を使うという方法も。 http://w.vmeta.jp/tdiary/?date=20120317 (*) :sh や、! で起動する外部コマンドが root 権限で起動しない、と思う...

timestepさんのコメント
いろいろ調べていただきありがとうございました。 whereis vim, sudo whereis vim でみてみたとろ、両方とも/usr/bin/vimでしたので同じようですが、片方だけsudo vim --version したときだけ-clipboardなので、何が何やら。とりあえず、ユーザーvimrcの場所を/var/root/.profileにMYVIMRC=/Users/username/.vimrcと記述してみましたが、こちらもうまくいっていません。単純にこれだけではうまくいかないようです。汗 ・rootにローカルvimrcを読み込ませる。 ・sudo vim --versionを+clipboardになるようにする とりあえず、この辺を課題にいろいろいじってみたいと思います。 一度終了し、また分からないときに別途違う質問として上げようと思います。 ちなみにsudoeditはmacには入ってなかったので、試してませんでしたが、検討してみたいと思います。

timestepさんのコメント
どうも/usr/bin/vimが古いようです。whereis vim でも/usr/bin/vimと出たので同じかと思いましたが、/usr/bin/vim --versionとすると -clipboardと出たので、やはり違うvimを見ているようでした。rootの環境変数をいじれるようにいじってみたいと思います。

a-kuma3さんのコメント
type か which で、vim を調べるとどうなるでしょう。 >|| % type vim % which vim ||< もしかしたら、alias が指定されてるとか。 でも、自分のパソコンなら、知らないうちに指定されている、とかは無いか。 sudoedit って、sudo についていくもんだと思ったんですけど、違うんですね。 Mac ユーザじゃないんで、微妙に的を外した回答で、ごめんなさい ><

timestepさんのコメント
忘れていたのですが、~/.bashrcにaliasを指定してました。 ターミナルからMacvim.appを使うためにhttp://yuroyoro.hatenablog.com/entry/20120211/1328930819 に書かれてるのを参考にしてaliasを設定したのだと思います。 ただrootのbashrcを設定するところが解決していないので 別途質問を投稿することにしました。 http://q.hatena.ne.jp/1371179920 ありがとうございました
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ