Shougo/vimshell.vim — pull request #120 by ichizok (2013-11-19 05:01:36+00:00)
Title: Undesirable buffer name

仕様かもしれませんが、バグと仮定してPRを送ります。
第一引数に current directory (に展開される表現) 以外を指定して `vimshell#start()` を呼ぶと、
buffer name に呼び出し前のパスがくっつきます。
`setlocal buftype=nofile` の後に `vimshell#cd()` を呼ぶことで解決するので、適当な位置に `vimshell#cd()` を移動しました。

現象:
```
ディレクトリ構成:
/a
/a/b
/a/b/c

current dir: /a/b

(1) normal -- current dir を指定. OK
:call vimshell#start(getcwd())
:echo bufname('%')
> [vimshell] - default

(2) abnormal (?) -- subdir を指定. 呼び出し前の位置が付く
:call vimshell#start('c')
:echo bufname('%')
> /a/b/[vimshell] - default

(3) abnormal (?) -- parent dir を指定. directory の差分が付く
:call vimshell#start('/a')
:echo bufname('%')
> b/[vimshell] - default
```

この挙動で困るケース:
1. vim-vcs の `vim#info()` を vimshell の prompt に使っている
2. `:VimFiler foo` で current directory 以外の位置にある repository を開く
3. `H` で vimshell を開く
4. `vim#info()` (で使っている `vim#detect()`) は `fnamemodify(vcs#expand('%'), ':p')` で検出位置を決めるため、正しい結果が返せない