vimで編集中のファイルがあるディレクトリによって、使用する .vimrc を切り替えたいと思っています。どのように設定等すればよいでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2008/10/21 10:57:16
  • 終了:2008/10/22 10:36:58

ベストアンサー

id:longicorn No.3

longicorn回答回数56ベストアンサー獲得回数62008/10/21 23:27:23

ポイント60pt

local_vimrc.vimかな?


自分のサイトから

local_vimrc.vim
各ディレクトリ毎に設定を行う。設定ファイル名は_vimrc_local.vim 。
a/b/cとあって、aの直下に_vimrc_local.vim を置けば、a/b/cの全ディレクトリに設定が有効になる。
id:co3k

お、ありがとうございます。

present from $HOME to the directory of the current buffer every time we change buffer.

おおー! これはすごい! ちょっと試してみますね。

-----------

追記:試してみました。ほとんど希望通りのことができるようになりました。id:longicornさんありがとうございます!

解決したのでこの質問は終了させていただきます。今回、ポイントは傾斜配分となりますがよろしくお願いします。

2008/10/22 10:36:04

その他の回答(2件)

id:un0 No.1

un0回答回数651ベストアンサー獲得回数322008/10/21 14:23:24

ポイント10pt

$ vim -u {vimrcファイル名} {編集ファイル名}

で出来ます。

  • u {vimrc} Use the commands in the file {vimrc} for initializations. All

the other initializations are skipped. Use this to edit a

special kind of files. It can also be used to skip all ini-

tializations by giving the name "NONE". See ":help initial-

ization" within vim for more details.

他には別ユーザを作れば簡単にできますね。

それぞれのユーザのホームディレクトリに置いておけばよいので。

~/.vimrc

参考になれば幸いです。

id:co3k

いえ、ファイルのディレクトリによって設定ファイルを変えたいのです。ファイル毎に変えたいわけではないのです。

2008/10/21 14:32:07
id:Orihika No.2

おりひか いくお回答回数26ベストアンサー獲得回数22008/10/21 17:16:47

ポイント10pt

 こんな方法ではいかがでしょうか。

1.適当なツールで自分専用スクリプト「vim」を作る (csh、Perl、...)

2.個人の環境変数のコマンドサーチパスで標準のvimより先に上記がヒットするようにする。

2'.上記スクリプトをmyvim等の名前にする。

3.上記スクリプトの中で、編集ファイルの場所に応じた.vimrcを読み込んで本来のvimを起動する。

※.vimrcの読み込み方は回答1に書かれている通り「vim -u {vimrcファイル名} {編集ファイル名}」にて。

id:co3k

「編集中のファイルがあるディレクトリ」

vim は :e で、別バッファにファイルを読み込むことができますが、起動オプションだとそれに対応できないのではないでしょうか?

2008/10/21 18:39:09
id:longicorn No.3

longicorn回答回数56ベストアンサー獲得回数62008/10/21 23:27:23ここでベストアンサー

ポイント60pt

local_vimrc.vimかな?


自分のサイトから

local_vimrc.vim
各ディレクトリ毎に設定を行う。設定ファイル名は_vimrc_local.vim 。
a/b/cとあって、aの直下に_vimrc_local.vim を置けば、a/b/cの全ディレクトリに設定が有効になる。
id:co3k

お、ありがとうございます。

present from $HOME to the directory of the current buffer every time we change buffer.

おおー! これはすごい! ちょっと試してみますね。

-----------

追記:試してみました。ほとんど希望通りのことができるようになりました。id:longicornさんありがとうございます!

解決したのでこの質問は終了させていただきます。今回、ポイントは傾斜配分となりますがよろしくお願いします。

2008/10/22 10:36:04
  • id:Orihika
     回答2への補足をコメントします。
     今、以下のようなディレクトリ構成だったとします。


    ホームディレクトリ
    /home/user1
    各種テキストファイル類
    /home/user1/doc1/doc1_1.txt
    /home/user1/doc1/doc1_2.txt
    /home/user1/doc2/doc2_1.txt
    /home/user1/doc2/doc2_2.txt
    vim環境ファイル
    /home/user1/.vimrc
    /home/user1/doc1/.vimrc
    /home/user1/doc2/.vimrc


     新規ファイル編集なら、「/home/user1/.vimrc」、doc1配下のテキスト編集なら「/home/user1/doc1/.vimrc」、doc2配下のテキスト編集なら「/home/user1/doc2/.vimrc」の設定の下にvimを動作させたいというご要望だと認識しています。


     で、ログインしてカレントディレクトリ=ホームディレクトリの状態として、


    $ vim doc1/doc1_1.txt


    としたら


    $ vim -u doc1/.vimrc doc1/doc1_1.txt


    のように動作して欲しいということだと認識しています。


     そこで私の回答2は、上記のように動作するスクリプトを書いてみては、という話です。
     「.vimrcを読み込んで」とは、最初に指定した編集ファイル名からディレクトリパスを解析し、「vimの-uの引数にしてvimを呼び出す」という意味で、「vimの:eで別バッファに読み込むこと」ではありません。

  • id:co3k
    コメントありがとうございます。

    質問の趣旨は、「編集中のファイルが存在するディレクトリに応じた .vimrc を読み込みたい」ということであり、 vim 起動時に読み込むファイルのディレクトリに応じて .vimrc を読み込むということではありませんので、やはり、僕の希望する回答ではないということですね。


    ※質問に書くべきだったかもしれませんが、 -u オプションについては既知です。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません