web-dev-qa-db-ja.com

vimでディレクトリを開く

私はMacユーザーでvimを真剣に試しています。私が使用しているほとんどのGUIエディターでは、次のようなコマンドを実行して、ディレクトリを「プロジェクト」として開くことができます。

編集〜/ www/example.com /

Vimに相当するvim ~/www/example.com/は、ディレクトリ内のファイルのリストを表示し、それらを開くことができます。ただし、vimの作業ディレクトリはそのパスに設定されません。作業ディレクトリを設定するには、:cd .を実行する必要があります。

おそらくシェルスクリプトを使用して、vimを開き、その作業ディレクトリを特定のパスに設定する方法はありますか?

違いがあれば、私は実際にMacVimを使用しています。

19
Abhi Beckert

@seheの提案のおかげで、私はこれを思いついた。それが最善の解決策かどうかはわかりませんが、うまくいくようです。

#!/bin/bash

if [ "$#" -eq 1 ];then # is there a path argument?
  if test -d $1;then # open directory in vim
    vim $1 +':cd %'
  else # open file in vim
    vim $1 +':cd %:h'
  fi
else # no path argument, just open vim
  vim 
fi
8
Abhi Beckert

脳死:

 (cd /path/to/dir && vim file)

それほどではない:

 vim /path/to/dir/file +':cd %:h'

いつでもマップできます:cd %:h便利なキーに移動するか、自動コマンドを入力します(実際には後者をお勧めしませんが、好みについては議論がありません)


ああ、ファイルの代わりにディレクトリの場合:

:cd %

十分です

6
sehe
$ cd ~/my/working/directory
$ vim .
3
kzh

これは役に立ちますか?

set autochdir

私はそれを見つけました http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file

2
Ziggy

以下を.vimrcに追加してみてください

let g:netrw_liststyle=3
let g:netrw_keepdir=0

これにより、ディレクトリの参照でファイルを表示するためにツリースタイルが使用され(ディレクトリにカーソルを置いてEnterキーを押すとディレクトリを展開できます)、現在の作業ディレクトリも参照しているディレクトリになります。

また、組み込みのディレクトリブラウザよりも高度なディレクトリブラウザを提供するNERDTreeプラグインにも興味があるかもしれません。オプションがあります

let g:NERDTreeChDirMode=2

現在のディレクトリを表示されたツリーのルートと一致させる、または

let g:NERDTreeChDirMode=1

コマンドを使用するたびにディレクトリを変更するには(:eまたは:NERDTree)新しいディレクトリを参照します。

1
Geoff Reedy