2011-08-11 8 views
1

新しいJavaソースファイルに使用された特定のautocmdがトリガーされなかった理由を理解するために、私は.vimrcとmy.vim/ftplugin/java.vimをクリーンアップすることにしました。これにより、 Java関連のすべてのautocmdsがトリガーされなくなりました。例えば。私は:makeでもうコンパイルできません。誰かが私の下の私の.vimrcで悩んだことを教えてもらえますか?私はjava.vimも追加しました。Vim:.vimrcクリーンアップ後にオートキャストが発生しない

の.vimrc:

set nocompatible 
set bs=2 
set tw=72 
set cindent 
set mouse=a 
set nowrapscan 
set showmatch 
set showmode 
set uc=0 
map ^H X 
map \e[3~ x 
set mousehide 
set hlsearch 
let c_comment_strings=1 

" Color for xiterm, rxvt, nxterm, color-xterm : 
if has("terminfo") 
set t_Co=8 
set t_Sf=\e[3%p1%dm 
set t_Sb=\e[4%p1%dm 
else 
set t_Co=8 
set t_Sf=\e[3%dm 
set t_Sb=\e[4%dm 
endif 

"Appearences 
colorscheme wombat256 
set t_Co=256 

set path+=. 

syntax on 
filetype plugin indent on 

map gf <C-W>f 
set number 
set grepprg=grep\ -nH\ $* 

"Typo/spelling abbreviations 
ab weigth weight 

java.vim:

set shiftwidth=4 
au BufRead,BufNewFile *.java set textwidth=80 
au BufRead,BufNewFile *.java set makeprg=javac\ % 
au BufRead,BufNewFile *.java set errorformat=%A%f:%l:\ %m,%+Z%p^,%+C%.%#,%-G%.%# 
au BufRead *.java set include=^\s*import 
au BufRead *.java set includeexpr=substitute(v:fname,'\\.','/','g') 

"Add some boiler plate 
au! BufNewFile *.java 
\ exe "normal O/*\r" . expand('%:t') . "\t" . strftime("%B %d %Y") . 
\ "\r/\r\rpublic class " . expand('%:t:r') . " {\r\t" | 
\ startinsert! 

"Abbreviations 
ab psvm public static void main(String[] args) {<ESC>o 
ab sopl System.out.println();<ESC>hi 
ab sepl System.error.println();<ESC>hi 
ab fori for (int i = 0; i <; i++) {<ESC>7hi 

編集:私は.javaファイル拡張子を持つファイルを開いて、set filetype?を行うと、私はfiletype=javaを得るかが、auのどれもsが誘発される。

答えて

0

あなたのjava.vimを〜/ .vim/ftplugin/java /java.vimに移動する必要があると思います。

java.vimの設定を 'au'フィルタの後ろに置く必要はありません。ファイル全体がjavaファイルのソースになります。

setlocal textwidth=120 wm=120 smartindent expandtab softtabstop=4 

" Compile maven 
nmap <F5> :!mvn compile<cr> 
0

サイドノート:私て.vim/ftplugin/javaの/ java.vimに私のようなラインを持っているwerkshyがそれを指摘したように、すべてのあなたの定義はオートコマンドされなければならないのjava-ftplugin、に行くべきフリー。そしてそこには、すべての定義がバッファローカルでなければならない。

setlocal textwidth=80 
... 
ab <buffer> psvm public static void main(String[] args) {<ESC>o 
nnoremap <buffer> <F5> :make<cr> 

戻る問題へ:ここでは、テンプレートローディングオートコマンドは遅すぎる定義されます。それはプラグイン/あなたの.vimrcに行われなければなりません。最高の解決策は確かにtemplate-expander pluginに依存することです。それらのほとんどは、現在、viml関数の解釈をサポートしています。こうすることで、テンプレートの管理がより簡単になります。

関連する問題