光のような早さでid:ka-nachtさんが反応してくださいました。(gmail notifierでトラックバックに気づいたんだけど、あまりに早すぎてiKnowしながら吹いてしまった)
FileType vim以外の設定において、{rhs}の末尾に
Re: vimからrubyとか走らせるキーマッピング - チナミニ - while ("im the true Vim master"); - vimグループが足りない(コピペミス?)。
これはわざとです。書いているスクリプトがコマンドライン引数を取るときに、
ファイル種類別の設定ならば:map系コマンドの{lhs}の最初に
Re: vimからrubyとか走らせるキーマッピング - チナミニ - while ("im the true Vim master"); - vimグループを付けるべき。でないとグローバルなkey mappingを定義することになり、特にこの設定例では:new foo.rb | new bar.pl | wincmd p等とした場合、 eにより実行されるものがperlのそれになってしまう。
そうです。これがやりたかったのです。
全バッファ共通でマッピングをしていると、おかしな事になるのは当たりまえですね。
私だったら以下のようにしますね。こちらの方がグローバル感が伝わって良いと思います。
Re: vimからrubyとか走らせるキーマッピング - チナミニ - while ("im the true Vim master"); - vimグループ
おおおおお。very格好良くなってしまった。ノウハウ吸収。
個人的な設定ではすこしオーバスペック気味な気がするので、手元では下のようにしました。
au Filetype ruby nnoremap <buffer><leader>e :!ruby %<Space> au Filetype perl nnoremap <buffer><leader>e :!perl %<Space> au Filetype haskell nnoremap <buffer><leader>e :!runghc %<Space> au Filetype scheme nnoremap <buffer><leader>e :!gosh %<Space> au Filetype javascript nnoremap <buffer><leader>e :!js %<Space> au Filetype vim nnoremap <silent><leader>e :source %<Return>