:Vitalize を複数回実行すると空ファイルができる
タイトルのままですが,
:Vitalize . :Vitalize .
とやると, カレントディレクトリに 1 という名前の空ファイルができる. なんぞや.
ソース眺めたけど理解できず..
謎だと言われた.
linger で謎だと言われてしまったので調べてみました. vim script のデバッグ方法はしらないので printf デバッグで.
" rmdir recursively. function! s:rmdir(path, ...) let flags = a:0 ? a:1 : '' if exists("*rmdir") return call('rmdir', [a:path] + a:000) elseif has("unix") let option = '' let option .= flags =~ 'f' ? ' -f' : '' let option .= flags =~ 'r' ? ' -r' : '' let ret = system("/bin/rm" . option . ' ' . shellescape(a:path) . ' 2>&1') " <=== ここ
空ファイルができる原因はここだった.
:call system("/bin/rm -f -r '/tmp//autoload/vital' 2>&1")
- これだと空ファイルできない
:call system("/bin/rm -f -r '/tmp//autoload/vital'")
- 当然、bシェルで以下のようにしても空ファイルはできない
bash> /bin/rm -f -r /tmp/autoload/vital.vim 2>&1
- cシェルだと空ファイルができる
csh> /bin/rm -f -r /tmp/autoload/vital.vim 2>&1
- あとは助けてください.