- 
      
 - 
        
Save akiradeveloper/3341971 to your computer and use it in GitHub Desktop.  
| function <SNR>1_toggle_vimfiler..<SNR>32_call_vimfiler..vimfiler#switch_filer..<SNR>75_create_filer..vimfiler#handler#_event_handler..<SNR>76_on_BufReadCmd..<SNR>76_initialize_vim | |
| filer_directory..vimfiler#force_redraw_screen..vimfiler#get_directory_files..unite#get_vimfiler_candidates..<SNR>33_get_candidates..<SNR>33_recache_candidates..<SNR>33_recache_can | |
| didates_loop..<SNR>33_get_source_candidates..39..37..unite#util#glob..vimproc#readdir..<SNR>63_libcall, line 16 | |
| Press ENTER or type command to continue | |
| vimproc: vp_readdir: ['opendir() error: No such file or directory'] | |
| Press ENTER or type command to continue | |
| [unite.vim] Error occured in vimfiler_gather_candidates! | |
| Press ENTER or type command to continue | |
| [unite.vim] Source name is file | |
akira@Paptimus> find .vim | xargs grep vp_readdir                                                                                                                       ~/dotfiles
.vim/bundle/vimproc/autoload/proc.c:vp_readdir(char args)
Binary file .vim/bundle/vimproc/autoload/vimproc_unix.so matches
.vim/bundle/vimproc/autoload/vimproc.vim:  let files = s:libcall('vp_readdir', [dirname])
.vim/bundle/vimproc/autoload/proc_w32.c:EXPORT const char *vp_readdir(char *args);  / files */
.vim/bundle/vimproc/autoload/proc_w32.c:vp_readdir(char *args)
vp_readdirを呼んでるところ一覧.
たぶん, vimproc.vim のlibcall('vp_readdir .. で死んでるんだろう. そんなもんないと??
たぶん, vimproc.vim のlibcall('vp_readdir .. で死んでるんだろう. そんなもんないと??
vpってvimprocのことかい!
vp_readdirのCコードの中に,
if((dir=opendir( .. ) というのがある. ここで死んでるのかな?そもそもそんなものがないと?
opendirというのはdirent.hに入ってる標準関数のようである.
proc.cはそのヘッダをインクルってるから, 問題はopendirが本当に見つからないこと?
opendir自体のコードはprocのみ
akira@Paptimus> find . | xargs grep opendir                                                                                                                          ~/.vim/bundle
./vimproc/autoload/proc.c:    if ((dir=opendir(dirname)) == NULL) {
./vimproc/autoload/proc.c:        return vp_stack_return_error(&_result, "opendir() error: %s",
Binary file ./vimproc/autoload/vimproc_unix.so matches
これ通るけど・・・
include <sys/types.h>
include <dirent.h>
int main(void){
DIR *dir = opendir("/home/akira");
return 0;
}
違うな. opendirで開こうとしたものが no file or なんちゃらだったのだ. パスの計算がちゃんと出来ていない
TODO とりあえず, pinpointしたいので, vimprocを消してみて実験する
make cleanしたら, ディレクトリ移動が出来るようになった. vimprocがあるとダメというのは確かなようである. というわけでとれる方針は
- vimfiler関連だけvimprocを使わないようにして(どうやるかは知らん), vimprocを保存する.
 - vimprocそのもの消す
というところ.
余談だけど, haskellmode-vimのhaddock_browserのデフォルトは"open"なのかな. 全く設定してないのにopenが設定されているようなことが言われる. 設定されてないときはopenを設定するということ? 
直すという方がいいな. again
function 69_execute..69_cd_file_directory..vimfiler#mappings#cd..vimfiler#force_redraw_screen..vimfiler#get_directory_files..unite#get_vimfiler_candidates..33_get_c
andidates..33_recache_candidates..33_recache_candidates_loop..33_get_source_candidates..35..33..unite#util#glob..vimproc#readdir..100_libcall, line 16
vimproc: vp_readdir: ['opendir() error: No such file or directory']
[unite.vim] Error occured in vimfiler_gather_candidates!
[unite.vim] Source name is file
function vimfiler#mappings#cd..vimfiler#force_redraw_screen..vimfiler#get_directory_files..unite#get_vimfiler_candidates..33_get_candidates..33_recache_candidates..
33_recache_candidates_loop..33_get_source_candidates..35..33..unite#util#glob..vimproc#readdir..100_libcall, line 16
vimproc: vp_readdir: ['opendir() error: No such file or directory']
[unite.vim] Error occured in vimfiler_gather_candidates!
[unite.vim] Source name is file
akira@Paptimus> find bundle | xargs grep vimfiler_gather_candidates                                                                                                         ~/.vim
bundle/unite.vim/doc/unite.txt:- Fixed vimfiler_gather_candidates().
bundle/unite.vim/autoload/unite.vim:        let funcname = 'vimfiler_gather_candidates'
bundle/unite.vim/autoload/unite.vim:        return has_key(a:source, 'vimfiler_gather_candidates') ?
bundle/unite.vim/autoload/unite.vim:              \ copy(a:source.vimfiler_gather_candidates(
bundle/unite.vim/autoload/unite/sources/file.vim:function! s:source_file.vimfiler_gather_candidates(args, context)"{{{
bundle/unite.vim/autoload/unite/sources/file_rec.vim:function! s:source_rec.vimfiler_gather_candidates(args, context)"{{{
vimfilerはuniteを利用して作っている. uniteのソース記述の部分でエラってるか
どれ, よう分からんがソースを読むか
[123] akira@Paptimus> find bundle | xargs grep -n vimfiler_gather_candidates                                                                                                ~/.vim
bundle/unite.vim/doc/unite.txt:3272:- Fixed vimfiler_gather_candidates().
bundle/unite.vim/autoload/unite.vim:2026:        let funcname = 'vimfiler_gather_candidates'
bundle/unite.vim/autoload/unite.vim:2027:        return has_key(a:source, 'vimfiler_gather_candidates') ?
bundle/unite.vim/autoload/unite.vim:2028:              \ copy(a:source.vimfiler_gather_candidates(
bundle/unite.vim/autoload/unite/sources/file.vim:130:function! s:source_file.vimfiler_gather_candidates(args, context)"{{{
bundle/unite.vim/autoload/unite/sources/file_rec.vim:154:function! s:source_rec.vimfiler_gather_candidates(args, context)"{{{
/unite/sources/file.vimかな
ん・・・・?????こんなコードがバグるの???vimprocを入れたらバグるということはどういうことだろうか. どこかの処理にvimprocがまぎれこんでしまった結果, 死.
はぁ・・・ if isdirectory(path)に入ってるのかな? echom埋め込んでみますか.
ここで死
akira@Paptimus> find . | xargs grep -n get_source_candidates                                                                                                         ~/.vim/bundle
./unite.vim/autoload/unite.vim:1963:    let source_candidates = s:get_source_candidates(source)
./unite.vim/autoload/unite.vim:2014:function! s:get_source_candidates(source)"{{{
./unite.vim/autoload/unite.vim:2017:  let funcname = 's:get_source_candidates()'
へ???
/home/akira/
/home/akira/.
/home/akira/Documents/
がvimproc#globに入っていく(vimprocありバージョンのパス).
Shougo/vimproc.vim#11
このエラーは似てる