備忘録:Vimの設定(Java)
Emacs派閥だったんですが、やむにやまれぬ事情にてVimを使う事と相成りました……
今まではvi(Vim)の事を(あくまでユーモアの一環として)disりにdisりまくっていたんですが、
慣れると案外良い物ですね。住めば都感があります。
その所為か、最近やたらめったらVimの環境ばかり整えておりまして(覚えているだけでも5台)、
むしろVimの環境を整えるのが仕事、みたいな感じになっております。
まあ、これ良い機会にとVimの設定を忘れないようにと書き連ねていこうかなと思います。
Vimに関してはほぼズブの素人なんで、「ココ、もっとこうすると幸せになれるよ」というアドヴァイスや
「こんな設定はマズい!」みたいなご指摘は大歓迎です。
共通の部分
特定の言語に依存しない、コモンな部分は
Vim初心者的導入メモ 2/3 「vimrc設定」編 - ナレッジエース
や
ウノウラボ by Zynga Japan: viを使おう
から、欲しい部分だけを引っ張ってきて.vimrcファイルにペーストしてるのでそこは省きます。
(というか、「.txtファイルで自動的に日本語入力ON」っていう部分、エラー起きてるんですけど
僕だけですかね?まあ、日本語を扱う機会はそんなに無いので、今のところ無視してるんですが……)
JAVA向けの設定
で、最近のお仕事ではJAVAを良く使うので、VimでもJAVAが書きやすければなー、
ってことで以下の操作を行いました。
- ソースコードをハイライトする
やっぱり、キーワードに対応して色が付いていた方が可読性が増す気がするので、その設定をば。
まずは、デフォルトでサポートされていないキーワードでもハイライトしちゃうニクいヤツ、javaid.vimを
javaid.vim
http://www.fleiner.com/vim/download.html
からダウンロードします。
ダウンロードしたjavaid.vimを、僕は
/usr/share/vim/vim73/syntax
に突っ込んでます。
でもって、.vimrcに
set sm set ai syntax on let java_highlight_all=1 let java_highlight_functions="style" let java_allow_cpp_keywords=1
を書き込んで保存します。そうすると、*.javaファイルを開いた時に自動的にハイライトされます。
(ただ、カラースキーマ使うと、ハイライトされなくなるんですが、仕様でしょうか)
- 自動補完機能を付ける。
やっぱり自動補完機能が付いていた方が便利なので、その機能も付けます。
オムニ補完を利用したjavacompleteなるプラグインが便利そうでしたので、それを使いました。
javacomplete
javacomplete - Omni Completion for JAVA : vim online
javacompleteをダウンロードしたら、端末上で
unzip javacomplete.zip -d /usr/share/vim/vimfiles
を実行してインストールします。
で、.vimrcに
"JAVA自動補完(javacomplete) autocmd FileType java :setlocal omnifunc=javacomplete#Complete autocmd FileType java :setlocal completefunc=javacomplete#CompleteParamsInfo
を書き込んで保存します。
すると、
(なんか、使いにくい感じがするんで、そのうちカスタマイズしたいです)
- Vimのエディタ上でコンパイルやら実行やらがやりたい
そのまんまです。
僕は、":Make"でコンパイル、":Do"でコンパイル後のファイルを実行、":Exe"でコンパイルしてから実行、
と3つのコマンドを使えるようにしましたが、実際":Do"コマンドは要らなかったんじゃ? とも思ってます。
.vimrcに以下を記述します。
"[JAVA] :Makeでコンパイル autocmd FileType java :command! Make call s:Make() function! s:Make() :w let path = expand("%") let syn = "javac ".path let dpath = split(path,".java$") let ret = system(syn) if ret == "" :echo "=======\r\nCompile Success" else :echo "=======\r\nCompile Failure\r\n".ret endif endfunction "[JAVA] :Doでコンパイル後のファイルを実行 autocmd FileType java :command! Do call s:Do() function! s:Do() let path = expand("%") let dpath = split(path,".java$") let syn = "java ".dpath[0] let ret = system(syn) :echo "=======\r\n実行結果:\r\n".ret endfunction "[JAVA] :Exeでコンパイルしてから実行 autocmd FileType java :command! Exe call s:Javac() function! s:Javac() :w let path = expand("%") let syn = "javac ".path let dpath = split(path,".java$") let ret = system(syn) if ret == "" :echo "=======\r\nCompile Success" let syn = "java ".dpath[0] let ret = system(syn) :echo "=======\r\n実行結果:\r\n".ret else :echo "=======\r\nCompile Failure\r\n".ret endif endfunction
てな感じで、コマンドを打ち込む事により各種処理を行えるようにしました。
ざっとこんな感じです。
Vimはまだまだ使い始めたばかりなので、老舗レストランのソースよろしく、
継ぎ足し継ぎ足しで.vimrcを熟成させて行けたらと思っております。
ご意見等、お待ちしております。