vimshell でコマンドを実行した後に Vim が操作不能になる
Closed this issue · 2 comments
osyo-manga commented
以下のように『特定のコマンドを実行した後に insert mode を抜ける』みたいな設定をしてる場合に Vim が操作不能になります。
再現 vimrc
if has('vim_starting')
set nocompatible
endif
set runtimepath+=~/vim/runtime/bundle/neobundle.vim
call neobundle#begin(expand($HOME."/neobundle"))
NeoBundle "Shougo/vimproc.vim", {
\ 'build' : {
\ 'windows' : 'make -f make_mingw32.mak',
\ 'cygwin' : 'make -f make_cygwin.mak',
\ 'mac' : 'make -f make_mac.mak',
\ 'unix' : 'make -f make_unix.mak',
\ },
\ }
NeoBundle "Shougo/vimshell.vim"
call neobundle#end()
filetype plugin indent on
let g:vimshell_interactive_update_time = 0
" ls 実行後に insert mode を抜ける
function! LeaveInsert_in_vimshell(args, context)
if a:args =~ '\%(^ls\)'
call feedkeys("\<Esc>", "n")
endif
endfunction
autocmd FileType vimshell
\ call vimshell#hook#add('preexec', 'leave_insert', "LeaveInsert_in_vimshell")
再現手順
- Vim を起動
:VimShell
を実行ls
を実行
環境
- Vim 7.4.2033
Shougo commented
Fixed.
osyo-manga commented
こちらでも動作することを確認しました。ありがとうございます。