いちいちシェルに戻るのが面倒くさいので、現在は、
au Filetype ruby nnoremap <leader>e :!ruby % au Filetype perl nnoremap <leader>e :!perl % au Filetype haskell nnoremap <leader>e :!runghc % au Filetype javascript nnoremap <leader>e :!js % au Filetype scheme nnoremap <leader>e :!gosh % au Filetype vim nnoremap <silent><leader>e :source %<CR>
というマッピングをしているのだけど、これだとq:とかしたあとにFileTypeがvimになってしまって,e*1した瞬間に泣きたくなる。(quickrunだと引数を与えられないのでこちらも必要)
id:secondlifeさんの昔の.vimrcでは
nmap ,e :execute '!' &ft ' %'<CR>
というスマートな方法を使われているんだけど、これだとjsとかgoshとかできない。
こないだのvim勉強会の時にはまた違った方法で設定されていたような気がしたんだけど、その方法はよくわからず。
なにかスマートな解決法がないか模索中。
(うじひささんはscreen要らないとか言われてますが、こういうことをしたときにscreenが無いと画面がクリアされてシェルの画面に戻ってしまうのでやっぱりscreenは必要。id:ka-nachtさんと違って動機が不純)
*1:let mapleader=','