noip考完啦
不管成绩怎么样,以后不用Dev啦。
尝试一下传说中的Vim
Vim8.0
https://files.cnblogs.com/files/zwfymqz/gvim80.zip
VIM中文帮助
https://files.cnblogs.com/files/zwfymqz/vimcdoc-1.7.0-setup.zip
_Vimrce配置文件
1 source $VIMRUNTIME/vimrc_example.vim
2 source $VIMRUNTIME/mswin.vim
3 behave mswin
4
5 colorscheme molokai
6 set t_Co=256
7 :set guifont=Consolas:h17
8 :set expandtab
9 :set shiftwidth=4
10 :set softtabstop=4
11 :set nu!
12 :set tabstop=4
13 syntax on
14 :set smartindent
15 :set mouse=a
16 :set autoindent
17 :retab!
18 "成对标点的自动定位功能,编程时的快速单步移动功能
19 inoremap ' ''<ESC>i
20 inoremap " ""<ESC>i
21 inoremap ( ()<ESC>i
22 inoremap [ []<ESC>i
23 inoremap { {<CR>}<ESC>O
24
25 "C,C++的调试
26 map <F8> :call Rungdb()<CR>
27 func! Rungdb()
28 exec "w"
29 exec "!g++ % -g -o %<"
30 exec "!gdb ./%<"
31 endfunc
32
33
34 "C++编译运行
35 "------------------------------------------------------------------------------
36 " < 判断操作系统是否是 Windows 还是 Linux >
37 "------------------------------------------------------------------------------
38 if(has("win32") || has("win64") || has("win95") || has("win16"))
39 let g:iswindows = 1
40 else
41 let g:iswindows = 0
42 endif
43
44 "------------------------------------------------------------------------------
45 " < 判断是终端还是 Gvim >
46 "------------------------------------------------------------------------------
47 if has("gui_running")
48 let g:isGUI = 1
49 else
50 let g:isGUI = 0
51 endif
52
53 "------------------------------------------------------------------------------
54 " < 编译、连接、运行配置 >
55 "------------------------------------------------------------------------------
56 " F10 一键保存、编译、连接存并运行
57 map <F10> :call Run()<CR>
58 imap <F10> <ESC>:call Run()<CR>
59
60 " F9 一键保存并编译
61 map <F9> :call Compile()<CR>
62 imap <F9> <ESC>:call Compile()<CR>
63
64 " Ctrl + F10 一键保存并连接
65 map <c-F10> :call Link()<CR>
66 imap <c-F10> <ESC>:call Link()<CR>
67
68 let s:LastShellReturn_C = 0
69 let s:LastShellReturn_L = 0
70 let s:ShowWarning = 1
71 let s:Obj_Extension = '.o'
72 let s:Exe_Extension = '.exe'
73 let s:Sou_Error = 0
74
75 let s:windows_CFlags = 'gcc\ -fexec-charset=gbk\ -Wall\ -g\ -O0\ -c\ %\ -o\ %<.o'
76 let s:linux_CFlags = 'gcc\ -Wall\ -g\ -O0\ -c\ %\ -o\ %<.o'
77
78 let s:windows_CPPFlags = 'g++\ -fexec-charset=gbk\ -Wall\ -g\ -O0\ -c\ %\ -o\ %<.o'
79 let s:linux_CPPFlags = 'g++\ -Wall\ -g\ -O0\ -c\ %\ -o\ %<.o'
80
81 func! Compile()
82 exe ":ccl"
83 exe ":update"
84 if expand("%:e") == "c" || expand("%:e") == "cpp" || expand("%:e") == "cxx"
85 let s:Sou_Error = 0
86 let s:LastShellReturn_C = 0
87 let Sou = expand("%:p")
88 let Obj = expand("%:p:r").s:Obj_Extension
89 let Obj_Name = expand("%:p:t:r").s:Obj_Extension
90 let v:statusmsg = ''
91 if !filereadable(Obj) || (filereadable(Obj) && (getftime(Obj) < getftime(Sou)))
92 redraw!
93 if expand("%:e") == "c"
94 if g:iswindows
95 exe ":setlocal makeprg=".s:windows_CFlags
96 else
97 exe ":setlocal makeprg=".s:linux_CFlags
98 endif
99 echohl WarningMsg | echo " compiling..."
100 silent make
101 elseif expand("%:e") == "cpp" || expand("%:e") == "cxx"
102 if g:iswindows
103 exe ":setlocal makeprg=".s:windows_CPPFlags
104 else
105 exe ":setlocal makeprg=".s:linux_CPPFlags
106 endif
107 echohl WarningMsg | echo " compiling..."
108 silent make
109 endif
110 redraw!
111 if v:shell_error != 0
112 let s:LastShellReturn_C = v:shell_error
113 endif
114 if g:iswindows
115 if s:LastShellReturn_C != 0
116 exe ":bo cope"
117 echohl WarningMsg | echo " compilation failed"
118 else
119 if s:ShowWarning
120 exe ":bo cw"
121 endif
122 echohl WarningMsg | echo " compilation successful"
123 endif
124 else
125 if empty(v:statusmsg)
126 echohl WarningMsg | echo " compilation successful"
127 else
128 exe ":bo cope"
129 endif
130 endif
131 else
132 echohl WarningMsg | echo ""Obj_Name"is up to date"
133 endif
134 else
135 let s:Sou_Error = 1
136 echohl WarningMsg | echo " please choose the correct source file"
137 endif
138 exe ":setlocal makeprg=make"
139 endfunc
140
141 func! Link()
142 call Compile()
143 if s:Sou_Error || s:LastShellReturn_C != 0
144 return
145 endif
146 let s:LastShellReturn_L = 0
147 let Sou = expand("%:p")
148 let Obj = expand("%:p:r").s:Obj_Extension
149 if g:iswindows
150 let Exe = expand("%:p:r").s:Exe_Extension
151 let Exe_Name = expand("%:p:t:r").s:Exe_Extension
152 else
153 let Exe = expand("%:p:r")
154 let Exe_Name = expand("%:p:t:r")
155 endif
156 let v:statusmsg = ''
157 if filereadable(Obj) && (getftime(Obj) >= getftime(Sou))
158 redraw!
159 if !executable(Exe) || (executable(Exe) && getftime(Exe) < getftime(Obj))
160 if expand("%:e") == "c"
161 setlocal makeprg=gcc\ -o\ %<\ %<.o
162 echohl WarningMsg | echo " linking..."
163 silent make
164 elseif expand("%:e") == "cpp" || expand("%:e") == "cxx"
165 setlocal makeprg=g++\ -o\ %<\ %<.o
166 echohl WarningMsg | echo " linking..."
167 silent make
168 endif
169 redraw!
170 if v:shell_error != 0
171 let s:LastShellReturn_L = v:shell_error
172 endif
173 if g:iswindows
174 if s:LastShellReturn_L != 0
175 exe ":bo cope"
176 echohl WarningMsg | echo " linking failed"
177 else
178 if s:ShowWarning
179 exe ":bo cw"
180 endif
181 echohl WarningMsg | echo " linking successful"
182 endif
183 else
184 if empty(v:statusmsg)
185 echohl WarningMsg | echo " linking successful"
186 else
187 exe ":bo cope"
188 endif
189 endif
190 else
191 echohl WarningMsg | echo ""Exe_Name"is up to date"
192 endif
193 endif
194 setlocal makeprg=make
195 endfunc
196
197 func! Run()
198 let s:ShowWarning = 0
199 call Link()
200 let s:ShowWarning = 1
201 if s:Sou_Error || s:LastShellReturn_C != 0 || s:LastShellReturn_L != 0
202 return
203 endif
204 let Sou = expand("%:p")
205 let Obj = expand("%:p:r").s:Obj_Extension
206 if g:iswindows
207 let Exe = expand("%:p:r").s:Exe_Extension
208 else
209 let Exe = expand("%:p:r")
210 endif
211 if executable(Exe) && getftime(Exe) >= getftime(Obj) && getftime(Obj) >= getftime(Sou)
212 redraw!
213 echohl WarningMsg | echo " running..."
214 if g:iswindows
215 exe ":!%<.exe"
216 else
217 if g:isGUI
218 exe ":!gnome-terminal -e ./%<"
219 else
220 exe ":!./%<"
221 endif
222 endif
223 redraw!
224 echohl WarningMsg | echo " running finish"
225 endif
226 endfunc
227
228 :nmap <F5> :call Debug()<CR>
229 :nmap <F9> :call Compile()<CR>
230 :nmap <F10> :call Run()<CR>
231 :nmap <F11> :call CompileAndRun()<CR>
232 :nmap <S-F9> :call O2Compile()<CR>
233 :nmap <S-F11> :call O2CompileAndRun()<CR>
234 :nmap <F12> :call FileTest()<CR>
235 :nmap <S-F12> :call O2FileTest()<CR>
236
237
238 " 配置多语言环境,解决中文乱码问题
239
240 if has("multi_byte")
241 " UTF-8 编码
242 set encoding=utf-8
243 set termencoding=utf-8
244 set formatoptions+=mM
245 set fencs=utf-8,gbk
246 if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)'
247 set ambiwidth=double
248 endif
249 if has("win32")
250 source $VIMRUNTIME/delmenu.vim
251 source $VIMRUNTIME/menu.vim
252 language messages zh_CN.utf-8
253 endif
254 else
255 echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
256 endif
257
258
259 " ===== Set omnicppcomplete <C-X><C-O>, can get the option =====
260 " enable plugins
261 set nocp
262 filetype plugin on
263 " --c++-kinds=+p : Adds prototypes in the database for C/C++ files.
264 " --fields=+iaS : Adds inheritance (i), access (a) and function signatures (S) information.
265 " --extra=+q : Adds context to the tag name. Note: Without this option, the script cannot get class members.
266 " --languages=c++ : Builds only the tags for C++ files.
267 " ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --languages=c++ .
268 " add a map <C-F12>
269 map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --languages=c++ .<CR>
270 let OmniCpp_NamespaceSearch = 1
271 let OmniCpp_GlobalScopeSearch = 1
272 let OmniCpp_DisplayMode = 1
273 let OmniCpp_ShowScopeInAbbr = 1
274 let OmniCpp_ShowAccess = 1
275 let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表
276 let OmniCpp_MayCompleteDot = 1 " 输入 . 后自动补全
277 let OmniCpp_MayCompleteArrow = 1 " 输入 -> 后自动补全
278 let OmniCpp_MayCompleteScope = 1 " 输入 :: 后自动补全
279 let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
280 let OmniCpp_SelectFirstItem = 1
281 set completeopt=longest,menu
282
283 VIM
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
colorscheme pablo
set guifont=Consolas:h17
set shiftwidth=4
set softtabstop=4
set tabstop=4
set nu!"设置行号"
set smartindent
set go -=T
set go -=m
inoremap ( ()<ESC>i
map <F9> :call C()<CR>
map <F10> :call R()<CR>
func! C()
exec "w"
exec "!g++ % -o %<"
endfunc
func! R()
exec "!%<"
endfunc
map <F8> :call Rungdb()<CR>
func! Rungdb()
exec "w"
exec "!g++ % -g -o %<"
exec "!gdb ./%<"
endfunc
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
https://pan.baidu.com/s/1skLGiuD