basyura's blog

あしたになったらほんきだす。

VimShell で Tab を押した時にディレクトリっぽかったら / を補完する

やっつけ。

function! s:complete_slash()
  if fnamemodify(getline("."), ":t") !~ '\.'
    call setline(line("."), getline(".") . "/")
  endif
  startinsert!
endfunction

function! s:vimshell_filetype_settings()
  inoremap <buffer><expr> <tab> pumvisible() ? "\<C-y>\<ESC>:call \<SID>complete_slash()\<CR>" : ""
endfunction