甘肃住房建设厅的网站,wordpress博客建站教程,制作影视视频的软件,网站如何批量上传产品对vim的配置足以处理一般的比赛获其他编程项目要求#xff0c;如自动缩进#xff0c;自动补全等等。先上几张截图#xff0c;看看效果#xff1a; 可以看见vim简洁高效的界面和不错的缩进功能。 debug功能 一、安装gvim 下载资源并安装 百度云下载网址http://pan.baid… 对vim的配置足以处理一般的比赛获其他编程项目要求如自动缩进自动补全等等。先上几张截图看看效果 可以看见vim简洁高效的界面和不错的缩进功能。 debug功能 一、安装gvim 下载资源并安装 百度云下载网址http://pan.baidu.com/share/link?shareid365469uk2970460274 二、配置c环境 1首先下载安装MinGW下载地址在http://sourceforge.net/projects/mingw/。这个是边下载边安装的下载完成即安装完成。我的安装目录是F:\MinGW。 2设置环境变量。右击我的电脑点属性-高级-环境变量。然后 1、在PATH里加入F:\MinGW\bin记得如果里面还有其他的变量记得要加个分号啊分号得在英文输入模式下输入的。 2、新建LIBRARY_PATH变量如果有的话在值中加入F:\MinGW\lib这是标准库的位置。 3、新建C_INCLUDEDE_PATH变量值设为F:\MinGW\include。 4、新建CPLUS_INCLUDE_PATH变量值为F:\MinGW\include;F:\MinGW\include\c\4.5.0;F:\MinGW\include\c\4.5.0\backward;F:\MinGW\include\c\4.5.0\mingw32 具体路径请根据你的MinGW选择。 3、在你的_vimrc文件中配置编译调试选项。 “定义CompileRun函数用来调用进行编译和运行
func CompileRun()
exec “w”
“C程序
if filetype ‘c’
exec “!gcc -Wall -enable-auto-import % -g -o %.exe”
“c程序
elseif filetype ‘cpp’
exec “!g -Wall -enable-auto-import % -g -o %.exe”
“Java程序
elseif filetype ‘java’
exec “!javac %”
endif
endfunc
“结束定义CompileRun
“定义Run函数
func Run()
if filetype ‘c’ || filetype ‘cpp’
exec “!%.exe”
elseif filetype ‘java’
exec “!java %”
endif
endfunc
“定义Debug函数用来调试程序
func Debug()
exec “w”
“C程序
if filetype ‘c’
exec “!gcc % -g -o %.exe”
exec “!gdb %.exe”
elseif filetype ‘cpp’
exec “!g % -g -o %.exe”
exec “!gdb %.exe”
“Java程序
elseif filetype ‘java’
exec “!javac %”
exec “!jdb %”
endif
endfunc
“结束定义Debug
“设置程序的运行和调试的快捷键F5和Ctrl-F5
map F5 :call CompileRun()CR
map F6 :call Run()CR
map C-F5 :call Debug()CR1234567891011121314151617181920212223242526272829303132333435363738394041424312345678910111213141516171819202122232425262728293031323334353637383940414243 可能遇到的问题 编译的时候可能会出现 Info: resolving std::cout by linking to __imp___ZSt4cout (auto-import) c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: warning: a uto-importing has been activated without –enable-auto-import specified on the c ommand line. This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.) 在编译命令中加入 -enable-auto-import 三、自动补全 一些代码缩进和其他例如括号自动补全等只需在vimrc配置文件加上相应配置代码即可最后博主会上传博主自己的vimrc配置代码较适合于比赛。接下来是代码自动补全插件的安装 参考自http://timothyqiu.com/archives/using-omnicomplete-for-c-cplusplus-in-vim/ OmniComplete 并不是插件的名字而是 Vim 众多补全方式中的一种全能补全。说白了 OmniComplete 其实就是根据光标前的内容猜测光标后的内容具体怎么猜取决于所采用的脚本。 而 OmniCppComplete 就是专为 C/C 编写的 OmniComplete 一个补全脚本。 那么经常和 OmniCppComplete 一起出没的 Ctags 又是什么呢Ctags 全名 Exuberant Ctags是一个独立的程序也就是说其实和 Vim 一点关系都没有。它可以为各种语言的源代码生成语言元素language object索引文件。对于 C/C 来说就是把源代码中的各种宏、函数、类、类成员等等元素和它们的相关信息生成索引文件供其它程序使用。 安装 Ctags 从官网下载 Ctags 可执行文件网站是 http://ctags.sourceforge.net/ 将下载到的文件仅 EXE 文件即可解压到一个目录例如 F:/ctags 将该目录加入环境变量 PATH 准备索引文件 以生成 C 标准库索引文件为例 下载专为 Ctags 修改过的 libstdc 头文件 将其解压到一个目录例如 F:/ctags/cpp_src 使用命令行进入 F:/ctags/cpp_src 后执行 ctags -R –sort1 –c-kindsp –fieldsiaS –extraq –language-forceC -f cpp . 建议将上一步生成的 F:/ctags/cpp_src/cpp 文件放到一个专门放置索引文件的目录以便后面的统一设置例如放到 F:/ctags/tags 其它库的索引文件也可以依法炮制只需切换到该库的 include 文件夹执行 ctags -R –sortyes –c-kindsp –fieldsiaS –extraq –language-forceC -f 文件名 . 安装 OmniCppComplete 下载 OmniCppComplete 将下载到的文件解压到 ~/.vim (unix) 或者 %HOMEPATH%\vimfiles (Windows) 文件夹 在 vimrc 文件中加入 ctags 索引文件 (根据已经生成的索引文件添加即可)
set tagsD:/ctags/tags/cppOmniCppComplete
let OmniCpp_NamespaceSearch 1
let OmniCpp_GlobalScopeSearch 1
let OmniCpp_ShowAccess 1
let OmniCpp_ShowPrototypeInAbbr 1 显示函数参数列表
let OmniCpp_MayCompleteDot 1 输入 . 后自动补全
let OmniCpp_MayCompleteArrow 1 输入 - 后自动补全
let OmniCpp_MayCompleteScope 1 输入 :: 后自动补全
let OmniCpp_DefaultNamespaces [std, _GLIBCXX_STD]自动关闭补全窗口
au CursorMovedI,InsertLeave * if pumvisible() 0|silent! pclose|endif
set completeoptmenuone,menu,longest12345678910111213141234567891011121314 另外还需确认在 vimrc 中开启了 filetype 选项不然 OmniComplete 无法自动识别 C/C 文件类型进行补全。 这样在插入模式编辑 C/C 源文件时按下 . 或 - 或 ::或者手动按下 CtrlX CtrlO 后就会弹出自动补全窗口此时可以用 CtrlN 和 CtrlP 上下移动光标进行选择。 这样一个精简的IDE就完成了。 博主的vimrc
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswinset diffexprMyDiff()
function MyDiff()let opt -a --binary if diffopt ~ icase | let opt opt . -i | endifif diffopt ~ iwhite | let opt opt . -b | endiflet arg1 v:fname_inif arg1 ~ | let arg1 . arg1 . | endiflet arg2 v:fname_newif arg2 ~ | let arg2 . arg2 . | endiflet arg3 v:fname_outif arg3 ~ | let arg3 . arg3 . | endiflet eq if $VIMRUNTIME ~ if sh ~ \cmdlet cmd . $VIMRUNTIME . \difflet eq elselet cmd substitute($VIMRUNTIME, , , ) . \diffendifelselet cmd $VIMRUNTIME . \diffendifsilent execute ! . cmd . . opt . arg1 . . arg2 . . arg3 . eq
endfunction
定义CompileRun函数用来调用进行编译和运行
func CompileRun()
exec w
C程序
if filetype c
exec !gcc -Wl,-enable-auto-import % -g -o %.exe
c程序
elseif filetype cpp
exec !g -Wl,-enable-auto-import % -g -o %.exe
Java程序
elseif filetype java
exec !javac %
endif
endfunc
结束定义CompileRun
定义Run函数
func Run()
if filetype c || filetype cpp
exec !%.exe
elseif filetype java
exec !java %
endif
endfunc
定义Debug函数用来调试程序
func Debug()
exec w
C程序
if filetype c
exec !gcc % -g -o %.exe
exec !gdb %.exe
elseif filetype cpp
exec !g % -g -o %.exe
exec !gdb %.exe
Java程序
elseif filetype java
exec !javac %
exec !jdb %
endif
endfunc
结束定义Debug
设置程序的运行和调试的快捷键F5和Ctrl-F5
map F5 :call CompileRun()CR
map F6 :call Run()CR
map C-F5 :call Debug()CR
:set number Vim color fileMaintainer: Bram Moolenaar Bramvim.orgLast Change: 2006 Apr 14 This color scheme uses a dark grey background. First remove all existing highlighting.
set backgrounddark
hi clear
if exists(syntax_on)syntax reset
endiflet colors_name eveninghi Normal ctermbgDarkGrey ctermfgWhite guifgWhite guibggrey20 Groups used in the highlight and guicursor options default value.
hi ErrorMsg termstandout ctermbgDarkRed ctermfgWhite guibgRed guifgWhite
hi IncSearch termreverse ctermreverse guireverse
hi ModeMsg termbold ctermbold guibold
hi StatusLine termreverse,bold ctermreverse,bold guireverse,bold
hi StatusLineNC termreverse ctermreverse guireverse
hi VertSplit termreverse ctermreverse guireverse
hi Visual termreverse ctermbgblack guibggrey60
hi VisualNOS termunderline,bold ctermunderline,bold guiunderline,bold
hi DiffText termreverse ctermbold ctermbgRed guibold guibgRed
hi Cursor guibgGreen guifgBlack
hi lCursor guibgCyan guifgBlack
hi Directory termbold ctermfgLightCyan guifgCyan
hi LineNr termunderline ctermfgYellow guifgYellow
hi MoreMsg termbold ctermfgLightGreen guibold guifgSeaGreen
hi NonText termbold ctermfgLightBlue guibold guifgLightBlue guibggrey30
hi Question termstandout ctermfgLightGreen guibold guifgGreen
hi Search termreverse ctermbgYellow ctermfgBlack guibgYellow guifgBlack
hi SpecialKey termbold ctermfgLightBlue guifgCyan
hi Title termbold ctermfgLightMagenta guibold guifgMagenta
hi WarningMsg termstandout ctermfgLightRed guifgRed
hi WildMenu termstandout ctermbgYellow ctermfgBlack guibgYellow guifgBlack
hi Folded termstandout ctermbgLightGrey ctermfgDarkBlue guibgLightGrey guifgDarkBlue
hi FoldColumn termstandout ctermbgLightGrey ctermfgDarkBlue guibgGrey guifgDarkBlue
hi DiffAdd termbold ctermbgDarkBlue guibgDarkBlue
hi DiffChange termbold ctermbgDarkMagenta guibgDarkMagenta
hi DiffDelete termbold ctermfgBlue ctermbgDarkCyan guibold guifgBlue guibgDarkCyan
hi CursorColumn termreverse ctermbgBlack guibggrey40
hi CursorLine termunderline ctermunderline guibggrey40 Groups for syntax highlighting
hi Constant termunderline ctermfgMagenta guifg#ffa0a0 guibggrey5
hi Special termbold ctermfgLightRed guifgOrange guibggrey5
if t_Co 8hi Statement termbold ctermbold ctermfgYellow guifg#ffff60 guibold
endif
hi Ignore ctermfgDarkGrey guifggrey20 vim: sw2
set wrap 长行自动折行
set number 显示行号
set cursorline 突出显示当前行
set tabstop4 设置tab键的宽度
set backspace2 设置退格键可用 syn on 打开语法高亮
set showmatch 设置匹配模式类似当输入一个左括号时会匹配相应的那个右括号
set smartindent 智能对齐方式
set shiftwidth4 换行时行间交错使用4个空格
set autoindent 自动对齐
set ai! 设置自动缩进
set cindent 以c/c的模式缩进
filetype plugin indent on 开启插件
set completeoptlongest,menu ctags 索引文件 (根据已经生成的索引文件添加即可)
set tagsF:/Ctags/tags/cppOmniCppComplete
let OmniCpp_NamespaceSearch 1
let OmniCpp_GlobalScopeSearch 1
let OmniCpp_ShowAccess 1
let OmniCpp_ShowPrototypeInAbbr 1 显示函数参数列表
let OmniCpp_MayCompleteDot 1 输入 . 后自动补全
let OmniCpp_MayCompleteArrow 1 输入 - 后自动补全
let OmniCpp_MayCompleteScope 1 输入 :: 后自动补全
let OmniCpp_DefaultNamespaces [std, _GLIBCXX_STD]自动关闭补全窗口
au CursorMovedI,InsertLeave * if pumvisible() 0|silent! pclose|endif
set completeoptmenuone,menu,longest
filetype plugin indent on 括号自动补全
inoremap ( ()ESCi
inoremap [ []ESCi
inoremap { {CR}ESCkACRinoremap ESCimap f2 :call SetTitle()CR
func SetTitle()
let l 0
let l l 1 | call setline(l, /*)
let l l 1 | call setline(l, * Author: ktmzgl)
let l l 1 | call setline(l, * Created Time: .strftime(%c))
let l l 1 | call setline(l, * File Name: .expand(%))
let l l 1 | call setline(l, */)
let l l 1 | call setline(l, #include iostream)
let l l 1 | call setline(l, #include cstdio)
let l l 1 | call setline(l, #include cstdlib)
let l l 1 | call setline(l, #include cstring)
let l l 1 | call setline(l, #include cmath)
let l l 1 | call setline(l, #include algorithm)
let l l 1 | call setline(l, #include string)
let l l 1 | call setline(l, #include vector)
let l l 1 | call setline(l, #include stack)
let l l 1 | call setline(l, #include queue)
let l l 1 | call setline(l, #include set)
let l l 1 | call setline(l, #include time.h)
let l l 1 | call setline(l, using namespace std;)
let l l 1 | call setline(l, const int maxint -1u1;)
let l l 1 | call setline(l, )
let l l 1 | call setline(l, int main() {)
let l l 1 | call setline(l, return 0;)
let l l 1 | call setline(l, })
let l l 1 | call setline(l, )
endfunc