ターミナルのエンコーディングを変えたり、vimを開くときにエンコードを変えたりといろいろやっていたのですが、 どうやらfileencodingsにsjisとeuc-jpを追加することで変換して表示してくれるようです。
変換できない文字に当たらない限りこれだけでいけるようです。 ターミナルの文字コードをUTF-8にして
vim ~/.vimrc --- set fileencodings=utf-8,sjis,euc-jp,latin1 ---
としておくだけでOK
もっと高度な文字コード判定などがあるみたいです http://bi.biopapyrus.net/linux/vim.html
[追記]
cp932のファイルを開きたいときは
vim ~/.vimrc --- set fileencodings=utf-8,cp932,sjis,euc-jp,latin1 ---
で開けるようです。