【转】Gvim配置(Windows and Linux)for C++

转载地址:http://blog.csdn.net/onepiecehuiyu/article/details/8934366

http://mawenhao19930620.blog.163.com/blog/static/12857536120112991818242/

Windows下gvim配置文件_vimrc

首先配置g++到环境变量(配置g++,具体是将devc++的g++.exe的路径比如说:c:/deVC++/bin..加入到环境变量path里面) , 然后将下面的代码复制并保存为_vimrc , 替换掉vim安装文件夹中的_vimrc文件(或者是打开Vim

的启动设定,然后复制下面的代码并保存即可)

 1 "Version: 1.0 by momodi@whuacm
 2 "Modified by ghostboyzone@gmail.com
 3 
 4 source $VIMRUNTIME/mswin.vim
 5 behave mswin
 6 imap <c-d> <c-o>dd
 7 imap <cr> <cr><left><right>
 8 map o o<left><right>
 9 imap <c-]> {<cr>}<c-o>O<left><right>
10 noremap <f6> =a{
11 syn on
12 colo desert
13 filetype indent on
14 se ru nu ar sw=4 ts=4 noswf et sta nowrap ww=<,>,[,] gfn=Consolas:h12
15 autocmd BufEnter * lcd %:p:h
16 map <c-t> :tabnew<CR>
17 map <f9> :call CR()<CR><CR>
18 func CR()
19 exec 'update'
20 if filereadable(expand('%<').'.in')
21     exec '!start cmd /c _run %< < %<.in & pause'
22 else
23     exec '!start cmd /c _run %< & pause'
24 endif
25 endfunc
26 map <f2> :call SetTitle()<CR>Gkkk
27 func SetTitle()
28 let l = 0
29 let l = l + 1 | call setline(l, '/*')
30 let l = l + 1 | call setline(l, ' * Author:  mybestwishes')
31 let l = l + 1 | call setline(l, ' * Created Time:  '.strftime('%c'))
32 let l = l + 1 | call setline(l, ' * File Name: '.expand('%'))
33 let l = l + 1 | call setline(l, ' */')
34 let l = l + 1 | call setline(l, '#include <iostream>')
35 let l = l + 1 | call setline(l, '#include <cstdio>')
36 let l = l + 1 | call setline(l, '#include <cstdlib>')
37 let l = l + 1 | call setline(l, '#include <cstring>')
38 let l = l + 1 | call setline(l, '#include <cmath>')
39 let l = l + 1 | call setline(l, '#include <algorithm>')
40 let l = l + 1 | call setline(l, '#include <string>')
41 let l = l + 1 | call setline(l, '#include <vector>')
42 let l = l + 1 | call setline(l, '#include <stack>')
43 let l = l + 1 | call setline(l, '#include <queue>')
44 let l = l + 1 | call setline(l, '#include <set>')
45 let l = l + 1 | call setline(l, '#include <time.h>')
46 let l = l + 1 | call setline(l, 'using namespace std;')
47 let l = l + 1 | call setline(l, 'const int maxint = -1u>>1;')
48 let l = l + 1 | call setline(l, '')
49 let l = l + 1 | call setline(l, 'int main() {')
50 let l = l + 1 | call setline(l, '    return 0;')
51 let l = l + 1 | call setline(l, '}')
52 let l = l + 1 | call setline(l, '')
53 endfunc
54 
55 map<f4> :call AddComment()<cr>
56 func AddComment()
57     if matchstr(getline('.'), '[^ ]') == '/'
58         normal ^xx
59     else
60         normal ^i//
61     endif
62 endfunc
63 
64 set printoptions=syntax:n,number:y,portrait:y
65 
66 
67 "设置水平滚动条
68 set guioptions+=b
69 
70 "set encoding=utf-8
71 "set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 " 如果你要打开的文件编码不在此列,那就添加进去
72 "set termencoding=utf-8

---------------------------------------------------------------------------------------------------------------

然后将下面代码编译, 修改产生的exe文件名为_run.exe

 1 #include <cstdio>
 2 
 3 #include <cstdlib>
 4 
 5 #include <ctime>
 6 
 7 
 8 int main(int argc, char **argv) {
 9 
10     char compiler[50] = {};
11 
12     sprintf(compiler, "g++ %s.cpp -o %s.exe", argv[1], argv[1]);
13 
14     char runcommand[50] = {};
15 
16     sprintf(runcommand, "%s.exe", argv[1]);
17 
18     if (system(compiler) == 0) {
19 
20         int t = clock();
21 
22         if (system(runcommand) == 0) {
23 
24             printf("
Run Time: %dms
", clock() - t);
25 
26         }
27 
28     }
29 
30     return 0;
31 
32 }

将_run.exe放到和gvim.exe同一个目录下  。windows下的gvim即配置完毕 。

Linux下gvim配置文件_vimrc

打开Vim的启动设定,然后复制下面的代码并保存即可

  1 "Vim for linux
  2 
  3 source $VIMRUNTIME/mswin.vim
  4 
  5 behave mswin
  6 
  7 imap <c-d> <c-o>dd
  8 
  9 imap <cr> <cr><left><right>
 10 
 11 map o o<left><right>
 12 
 13 imap <c-]> {<cr>}<c-o>O<left><right>
 14 
 15 noremap <f6> =a{
 16 
 17 syn on
 18 
 19 colo desert
 20 
 21 "colo torte
 22 
 23 filetype indent on
 24 
 25 
 26 set gfn=Courier 10 Pitch 12
 27 
 28 set ru nu et sta nowrap ar acd ww=<,>,[,] sw=4 ts=4 cin noswf
 29 
 30 
 31 "se ru nu ar sw=4 ts=4 noswf et sta nowrap ww=<,>,[,] gfn=Consolas:h12
 32 
 33 autocmd BufEnter * lcd %:p:h
 34 
 35 map <c-t> :tabnew<CR>
 36 
 37 
 38 map <f9> :call CR()<CR><CR>
 39 
 40 func CR()
 41 
 42 exec "update"
 43 
 44 exec "!xterm -fn 10*20 -e "g++ %<.cpp -Wall -o %< && time ./%< < %<.in ; read -n 1""
 45 
 46 endfunc
 47 
 48 
 49 map <f10> :call CR2()<cr><space>
 50 
 51 func CR2()
 52 
 53 exec "update"
 54 
 55 exec "!xterm -fn 10*20 -e "g++ %<.cpp -Wall -o %< && time ./%< ; read -n 1""
 56 
 57 endfunc
 58 
 59 
 60 map <f2> :call SetTitle()<CR>Gkkk
 61 
 62 func SetTitle()
 63 
 64 let l = 0
 65 
 66 let l = l + 1 | call setline(l, '/*')
 67 
 68 let l = l + 1 | call setline(l, ' * Author:  mybestwishes')
 69 
 70 let l = l + 1 | call setline(l, ' * Created Time:  '.strftime('%c'))
 71 
 72 let l = l + 1 | call setline(l, ' * File Name: '.expand('%'))
 73 
 74 let l = l + 1 | call setline(l, ' */')
 75 
 76 let l = l + 1 | call setline(l, '#include <iostream>')
 77 
 78 let l = l + 1 | call setline(l, '#include <cstdio>')
 79 
 80 let l = l + 1 | call setline(l, '#include <cstdlib>')
 81 
 82 let l = l + 1 | call setline(l, '#include <cstring>')
 83 
 84 let l = l + 1 | call setline(l, '#include <cmath>')
 85 
 86 let l = l + 1 | call setline(l, '#include <algorithm>')
 87 
 88 let l = l + 1 | call setline(l, '#include <string>')
 89 
 90 let l = l + 1 | call setline(l, '#include <vector>')
 91 
 92 let l = l + 1 | call setline(l, '#include <stack>')
 93 
 94 let l = l + 1 | call setline(l, '#include <queue>')
 95 
 96 let l = l + 1 | call setline(l, '#include <set>')
 97 
 98 let l = l + 1 | call setline(l, '#include <time.h>')
 99 
100 let l = l + 1 | call setline(l, 'using namespace std;')
101 
102 let l = l + 1 | call setline(l, 'const int maxint = -1u>>1;')
103 
104 let l = l + 1 | call setline(l, '')
105 
106 let l = l + 1 | call setline(l, 'int main() {')
107 
108 let l = l + 1 | call setline(l, '    return 0;')
109 
110 let l = l + 1 | call setline(l, '}')
111 
112 let l = l + 1 | call setline(l, '')
113 
114 endfunc
115 
116 
117 map<f4> :call AddComment()<cr>
118 
119 func AddComment()
120 
121     if (getline('.')[0] == '/')
122 
123         normal ^xx
124 
125     else
126 
127         normal 0i//
128 
129     endif
130 
131 endfunc
132 
133 set printoptions=syntax:n,number:y,portrait:y
134 
135 set guioptions+=b
136 
137 
138 set encoding=utf-8
139 
140 set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 
141 
142 set termencoding=utf-8

上面的_vimrc配置文件可以根据自己的需求添加和删除相应的内容。


在Windows平台上,是按[F9]编译并执行; 在Linux平台上,是按[F9]或[F10]执行,一个是带输入文件,一个是不带输入文件。

vimrc for windows and linux: 下载地址

原文地址:https://www.cnblogs.com/kuangbin/p/3234628.html