我来自Eclipse背景,但我喜欢Vim作为文本编辑器.我目前正在尝试将Vim作为Java IDE.目前我这样编译:
! javac MyClass.java
Run Code Online (Sandbox Code Playgroud)
其次是
! java -cp . MyClass
Run Code Online (Sandbox Code Playgroud)
如果我有编译错误,我必须回到编译器输出!并手动跳转到产生错误的每一行.一旦我开始添加其他类,我就必须分别编译它们.
必须有一种比这更有效的方法.根据我目前的低效率的Vim的工作流程,我可以得到的东西在图形IDE,它胜过使用议会为我的目的更快地完成.
我希望能够输入类似于:compile包含我的main方法的类来编译我的所有源代码,并显示错误消息的分屏列表.你会推荐什么?
相关,但与我个人无关:
更新:我从这个问题中得到的结论是作为一个单独的答案发布的.
Pie*_*ter 13
根据要求,我已经将这个问题作为一个单独的答案发布了.
这是我如何使用每个人的建议.

将此添加到~/.vimrc:
autocmd Filetype java set makeprg=javac\ %
set errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#
map <F9> :make<Return>:copen<Return>
map <F10> :cprevious<Return>
map <F11> :cnext<Return>
Run Code Online (Sandbox Code Playgroud)
F9编译,F10/F11循环错误.
如果你不在java类中使用任何包,那么
//compile
:!javac %
//run
:!java -cp %:p:h %:t:r
Run Code Online (Sandbox Code Playgroud)
映射.vimrc文件中的F5 以自动化构建
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!gcc % -o %<"
exec "!time ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!time java -cp %:p:h %:t:r"
elseif &filetype == 'sh'
exec "!time bash %"
elseif &filetype == 'python'
exec "!time python2.7 %"
elseif &filetype == 'html'
exec "!firefox % &"
elseif &filetype == 'go'
exec "!go build %<"
exec "!time go run %"
elseif &filetype == 'mkd'
exec "!~/.vim/markdown.pl % > %.html &"
exec "!firefox %.html &"
endif
endfunc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22046 次 |
| 最近记录: |