王垠有过一个VIM IDE的我介绍,很不错.我自己也做了一个IDE的设置,不得不说VIM是 十分强大的. 但是一个问题,我想有一个好的解决方法.那就是执行,与调试 我本来的方法是启动一个xterm在里面执行.但是这样多出了一个窗口,感觉很不方便. 调试也是,要再开一个窗口,不方便. 这两天我在看vim的插件的时候发现了一个好东西. Conque shell[http://www.vim.org/scripts/script.php?script_id=2771] 我们都知道在vim里可以用:! 的方式执行一个shell 命令.但是来回切换是很不方便的 ,同时一个显示的上的问题不是很好看. 这个插件的功能是一在buffer里执行一个shell.给人的感觉就是在终端里执行一个 shell,感觉很好.而且可以用vim的方式进行工作,让我有用gvim取代xterm的冲动(呵呵) 有了这个插件,我们就可以在一个窗口里进行软件的运行与调试了.呵呵 下面是我自己的一个小vim script. F3进行编译.F5执行并在右边的窗口中输出.F6在右边的窗口里调试(gdb) 如果已经启动,但是你关闭了这个窗口,也会自动重新开启. 对了如果用的是zsh,那么显示的一个小问题可以用下面的设置解决. 在vimrc里加入 let g:ConqueTerm_TERM= 'vt220' ############################### map :update:silent make:cw imap :update:silent make:cw "本函数的功能,启动ConqueTerm,清屏,并在右侧启动一个vsplite窗口.如果是已经启动过 "但是目前是hidden.就再次打开. "back == 1则回到右边的窗口 function! ConqueTerm_run(shell,command,back) if !exists('g:run_term') let g:run_term=conque_term#open(a:shell,['belowright vsplit','vertical resize 40'],1) endif let buf_id=bufnr(g:run_term['buffer_name']) if (bufwinnr(buf_id) == -1) belowright 40vnew exe "buffer ". buf_id wincmd h endif call g:run_term.writeln('clear') call g:run_term.writeln(a:command) call g:run_term.read(100) if a:back == 0 exe bufwinnr(buf_id).'wincmd w' endif endfunction "map :!xterm -e "./a.out;sleep 10;"& "map :!gcc -g2 %:!xterm -e "gdb a.out"& map :call ConqueTerm_run('zsh','./a.out',1) map :call ConqueTerm_run('zsh','gdb a.out',0) "}}}
posted on 2012-12-19 18:47  fengidri  阅读(89)  评论(0编辑  收藏  举报