- 浏览: 588443 次
文章分类
最新评论
vim环境变量配置、背景色配置
转自http://blog.csdn.net/mybelief321/article/details/9066249
我们使用vi或者vim的时候,如果想要显示行号,可能会这样做:切换到命令模式,然后输入set nu,再按回车键就显示了;还有就是咱们在编写程序的时候,有的时候会希望按下回车键后,光标不是每次都在行首,而是与上一行的第一个非空格符处对齐,也就是实现所谓的缩排功能,这是你可以在命令模式下输入set autoindent。但是每次这样输入太麻烦了,可不可以在每次利用vim命令编辑时自动就设置好功能呢?
简单说一下我的配置步骤。下表为vim的环境参数(鸟哥那本书上的)
上面都是鸟哥的私房菜里边的,下面简单截图记录一下我的设置,以后想添加功能自己再添加就行了
1、使用命令: cd /etc/vim 进入配置目录
2、使用命令: vim vimrc编辑vimrc文件,我的ubuntu需要使用命令:sudo vim vimrc
3、在vimrc文件的最后一行,添加你想要设置的选项,下图是我想使vim默认的一些功能
4、然后使用 wq保存就可以了,这样设置就成功了。
看了一下很符合口味,就借用了。基本没变动,稍微修改了几句,
注:以下带有网址的都是需要去下载这些插件,点击网址进去就有了
另注:貌似Tlist那个网址被我不小心删掉了
再注:使用archlinux的,可以使用yaourt再AUR中找,很多都是以vim-XXX开头的,命令格式如下:
- yaourt-Ssvim-XX
然后再下载,命令如下:
- yaourt-Svim-XX
vim的自动补齐一直弄不好,有空找个人帮忙教一下,另外有一些插件功能还没想出来怎么用。现在把弄好的贴上。
另外快捷键一多,没熟悉前总是很难受的,所以弄了一个help.txt文档,放在~/.vim/目录下,每次输入<leader>he就可以打开帮助文档。
新增:抽空弄了一下自动补齐,感觉不错,安装插件neocomplcache
在archlinux中,AUR里面也有,名称为 vim-neocomplcache,所以输入命令:
- #yaourt-Svim-neocomplcache
- letg:neocomplcache_enable_at_startup=1
改变:删掉了关于cscope快捷键,使用官网推荐的快捷方式(其实也没怎么用到)
重新修改了几个快捷键,感觉有些用起来还是不舒服
关于快速编译:永不来autotool系列的工具,找了本书结果有300多页,也没那么多精力去看,然后就偷懒装了一个Qt,用Qt自带的qmake工具生成Makefile工具
用法如下:
- #qmake-project
该命令会查找当前目录下的文件生成.pro文件,之后可以修改.pro文件来配置自己想要的功能
- #qmake
该命令会根据当前目录下的.pro文件生成对应的Makefile文件
注:在vim中输入:make可以让vim编译器自动根据当前目录下的Makefile文件进行编译
配置文件~/.vimrc
- letmapleader="m""比较习惯用;作为命令前缀,右手小拇指直接能按到
- "把空格键映射成:
- nmap<space>/
- "快捷打开编辑vimrc文件的键盘绑定
- map<silent><leader>ee:e$HOME/.vimrc<cr>
- autocmd!bufwritepost*.vimrcsource$HOME/.vimrc
- "^z快速进入shell
- nmap<C-Z>:shell<cr>
- ""inoremap<leader>n<esc>
- "判断操作系统
- if(has("win32")||has("win64")||has("win32unix"))
- letg:isWin=1
- else
- letg:isWin=0
- endif
- "判断是终端还是gvim
- ifhas("gui_running")
- letg:isGUI=1
- else
- letg:isGUI=0
- endif
- "setcursorline"高亮当前行
- setnocompatible"关闭兼容模式
- syntaxenable"语法高亮
- syntaxon
- filetypepluginon"文件类型插件
- filetypeindenton
- "setshortmess=atI"去掉欢迎界面
- setautoindent
- autocmdBufEnter*:syntaxsyncfromstart
- setnu"显示行号
- setshowcmd"显示命令
- setlz"当运行宏时,在命令执行完成之前,不重绘屏幕
- sethid"可以在没有保存的情况下切换buffer
- setbackspace=eol,start,indent
- setwhichwrap+=<,>,h,l"退格键和方向键可以换行
- "setincsearch"增量式搜索
- setnohlsearch
- sethlsearch"高亮搜索
- setignorecase"搜索时忽略大小写
- setmagic"额,自己:hmagic吧,一行很难解释
- setshowmatch"显示匹配的括号
- setnobackup"关闭备份
- setnowb
- setnoswapfile"不使用swp文件,注意,错误退出后无法恢复
- setlbr"在breakat字符处而不是最后一个字符处断行
- setai"自动缩进
- setsi"智能缩进
- setcindent"C/C++风格缩进
- setwildmenu
- setnofen
- setfdl=10
- setcmdheight=4"设ckspace和光标键跨越行边界
- setwhichwrap+=<,>,h,l
- "可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
- setmouse=a
- setselection=exclusive
- setselectmode=mouse,key"置控制窗口大小
- "tab转化为4个字符
- setexpandtab
- setsmarttab
- setshiftwidth=4
- settabstop=4
- "不使用beep或flash
- setvbt_vb=
- setbackground=dark
- sett_Co=256
- colorschemetorte
- sethistory=400"vim记住的历史操作的数量,默认的是20
- setautoread"当文件在外部被修改时,自动重新读取
- setmouse=a"在所有模式下都允许使用鼠标,还可以是n,v,i,c等
- "在gvim中高亮当前行
- if(g:isGUI)
- setcursorline
- colorschemewombat
- hicursorlineguibg=#333333
- hiCursorColumnguibg=#333333
- "setguifont=Consolas\10
- "setguifontwide=Consolas\10
- setguifont=DejaVu\Sans\Mono\10
- setgfw=DejaVu\Sans\Mono\10
- "不显示toolbar
- setguioptions-=T
- "不显示菜单栏
- "setguioptions-=m
- endif
- "设置字符集编码,默认使用utf8
- if(g:isWin)
- let&termencoding=&encoding"通常win下的encoding为cp936
- setfileencodings=utf8,cp936,ucs-bom,latin1
- else
- setencoding=utf8
- setfileencodings=utf8,gb2312,gb18030,ucs-bom,latin1
- endif
- "状态栏
- setlaststatus=2"总是显示状态栏
- highlightStatusLinecterm=boldctermfg=yellowctermbg=blue
- "获取当前路径,将$HOME转化为~
- function!CurDir()
- letcurdir=substitute(getcwd(),$HOME,"~","g")
- returncurdir
- endfunction
- setstatusline=[%n]\%f%m%r%h\\|\\pwd:\%{CurDir()\}\/%f\\\|%=\|\%l,%c\%p%%\\|\ascii=%b,hex=%b%{((&fenc==\"\")?\"\":\"\\|\\".&fenc)}\\|\%{$USER}\@\%{hostname()}\
- "根据给定方向搜索当前光标下的单词,结合下面两个绑定使用
- function!VisualSearch(direction)range
- letl:saved_reg=@"
- execute"normal!vgvy"
- letl:pattern=escape(@",'\\/.*$^~[]')
- letl:pattern=substitute(l:pattern,"\n$","","")
- ifa:direction=='b'
- execute"normal?".l:pattern."<cr>"
- else
- execute"normal/".l:pattern."<cr>"
- endif
- let@/=l:pattern
- let@"=l:saved_reg
- endfunction
- "用*/#向前/后搜索光标下的单词
- vnoremap<silent>*:callVisualSearch('f')<CR>
- vnoremap<silent>#:callVisualSearch('b')<CR>
- "恢复上次文件打开位置
- ""setviminfo='10,\"100,:20,%,n~/.viminfo
- ""auBufReadPost*ifline("'\"")>0|ifline("'\"")<=line("$")|exe("norm'\"")|else|exe"norm$"|endif|endif
- "删除buffer时不关闭窗口
- command!Bclosecall<SID>BufcloseCloseIt()
- function!<SID>BufcloseCloseIt()
- letl:currentBufNum=bufnr("%")
- letl:alternateBufNum=bufnr("#")
- ifbuflisted(l:alternateBufNum)
- buffer#
- else
- bnext
- endif
- ifbufnr("%")==l:currentBufNum
- new
- endif
- ifbuflisted(l:currentBufNum)
- execute("bdelete!".l:currentBufNum)
- endif
- endfunction
- "快捷输入
- "自动完成括号和引号
- inoremap(()<esc>:letleavechar=")"<cr>i
- inoremap[[]<esc>:letleavechar="]"<cr>i
- inoremap}{}<esc>:letleavechar="}"<cr>i
- inoremap{{<esc>o}<esc>:letleavechar="}"<cr>O
- inoremap'''<esc>:letleavechar="'"<cr>i
- inoremap"""<esc>:letleavechar='"'<cr>i
- "插件窗口的宽度,如TagList,NERD_tree等,自己设置
- lets:PlugWinSize=25
- "taglist.vimdownlo
- "设置依次按下wm两个键打开列表
- nmapwm:WMToggle<cr>
- letTlist_Show_One_File=1
- letTlist_Exit_OnlyWindow=1
- letg:winManagerWindowLayout='FileExplorer|TagList'
- letTlist_Use_Right_Window=0
- letTlist_File_Fold_Auto_Close=1
- letTlist_GainFocus_On_ToggleOpen=0
- letTlist_WinWidth=s:PlugWinSize
- letTlist_Auto_Open=0
- letTlist_Display_Prototype=0
- "letTlist_Close_On_Select=1
- "OmniCppComplete.vim
- "http://www.vim.org/scripts/script.php?script_id=1520
- setcompleteopt=menu
- letOmniCpp_ShowPrototypeInAbbr=1
- letOmniCpp_DefaultNamespaces=["std"]"逗号分割的字符串
- letOmniCpp_MayCompleteScope=1
- letOmniCpp_ShowPrototypeInAbbr=0
- letOmniCpp_SelectFirstItem=2
- "c-j自动补全,当补全菜单打开时,c-j,k上下选择
- "imap<expr><c-u>pumvisible()?"\<C-N>":"\<C-X><C-O>"
- "imap<expr><c-i>pumvisible()?"\<C-P>":"\<esc>"
- "f:文件名补全,l:行补全,d:字典补全,]:tag补全
- "imap<C-]><C-X><C-]>
- imap<C-F><C-X><C-F>
- imap<C-D><C-X><C-D>
- imap<C-L><C-X><C-L>
- "NERD_commenter.vim
- "http://www.vim.org/scripts/script.php?script_id=1218
- "Toggle单行注释/“性感”注释/注释到行尾/取消注释
- map<leader>cc,c<space>
- map<leader>cs,cs
- map<leader>c$,c$
- map<leader>cu,cu
- "-----------------------------------------------------------------
- ""plugin-DoxygenToolkit.vim由注释生成文档,并且能够快速生成函数标准注释
- "-----------------------------------------------------------------
- letg:DoxygenToolkit_authorName="Asins-asinsimpleATgmailDOTcom"
- letg:DoxygenToolkit_briefTag_funcName="yes"
- map<leader>da:DoxAuthor<CR>
- map<leader>df:Dox<CR>
- map<leader>db:DoxBlock<CR>
- map<leader>dc<End>a/**/<LEFT><LEFT><LEFT>
- "NERDtree
- "http://www.vim.org/scripts/script.php?script_id=1658
- letNERDTreeShowHidden=1
- letNERDTreeWinPos="left"
- letNERDTreeWinSize=s:PlugWinSize
- nmapwn:NERDTreeToggle<cr>
- "DoxygenToolkit.vim
- "http://www.vim.org/scripts/script.php?script_id=987
- "暂时没有使用
- "更新ctags和cscope索引
- "href:http://www.vimer.cn/2009/10/把vim打造成一个真正的ide2.html
- "稍作修改,提取出DeleteFile函数,修改ctags和cscope执行命令
- map<F6>:callDo_CsTag()<cr>
- function!Do_CsTag()
- letdir=getcwd()
- "先删除已有的tags和cscope文件,如果存在且无法删除,则报错。
- if(DeleteFile(dir,"tags"))
- return
- endif
- if(DeleteFile(dir,"cscope.files"))
- return
- endif
- if(DeleteFile(dir,"cscope.out"))
- return
- endif
- if(executable('ctags'))
- silent!execute"!ctags-R--c++-kinds=+p--fields=+iaS--extra=+q."
- endif
- if(executable('cscope')&&has("cscope"))
- if(g:isWin)
- silent!execute"!dir/s/b*.c,*.cpp,*.h,*.java,*.cs>>cscope.files"
- else
- silent!execute"!find.-iname'*.[ch]'-o-name'*.cpp'>cscope.files"
- endif
- silent!execute"!cscope-b"
- execute"normal:"
- iffilereadable("cscope.out")
- execute"csaddcscope.out"
- endif
- endif
- "刷新屏幕
- execute"redr!"
- endfunction
- function!DeleteFile(dir,filename)
- iffilereadable(a:filename)
- if(g:isWin)
- letret=delete(a:dir."\\".a:filename)
- else
- letret=delete("./".a:filename)
- endif
- if(ret!=0)
- echohlWarningMsg|echo"Failedtodelete".a:filename|echohlNone
- return1
- else
- return0
- endif
- endif
- return0
- endfunction
- "cscope绑定
- ifhas("cscope")
- setcsto=1
- setcst
- setnocsverb
- setcscopequickfix=s-,c-,d-,i-,t-,e-
- iffilereadable("cscope.out")
- csaddcscope.out
- endif
- endif
- "quickfix配置"
- map<F3>:cw<cr>
- map<F2>:cn<cr>
- "Vimwiki配置
- letg:vimwiki_list=[{'path':'~/Dropbox/MyWiki/my_site/',
- \'path-html':'~/Dropbox/MyWiki/my_site_html/',
- \'html-header':'~/Dropbox/MyWiki/templates/header.tpl',
- \'html-footer':'~/Dropbox/MyWiki/templates/footer.tpl'}]
- letg:vimwiki_camel_case=0
- letwiki={}
- letwiki.path='~/Dropbox/MyWiki/my_site/'
- letwiki.nested_syntaxes={'python':'python','c++':'cpp'}
- letg:vimwiki_list=[wiki]
- "pythoncomplete配置
- autocmdfiletypepythonsetomnifunc=pythoncomplete#Complete
- "定义在插入模式下
- "使用ctrl+j为向下一行
- inoremap<C-h><Left>
- inoremap<C-j><Down>
- inoremap<C-k><Up>
- inoremap<C-l><Right>
- "可以快速保存和退出
- nmap<leader>q:q<CR>
- nmap<leader>w:w<CR>
- nmap<leader>qq:q!<CR>
- nmap<leader>wq:wq<CR>
- "quicklygotohelpmenuofthisfunction
- nmap<leader>an:Man3<cword><CR>
- "superenter,itcanguciklygotothenextline
- imape<CR><End><CR>
- imap<leader>dd<Esc>ddi
- imape;<End>;
- map<silent><leader>he:tabnew~/.vim/help.txt<CR>
- "
- "设置F5编译,F6运行
- func!CompileGcc()
- exec"w"
- letcompilecmd="!gcc"
- letcompileflag="-o%<"
- ifsearch("mpi.h")!=0
- letcompilecmd="!mpicc"
- endif
- ifsearch("glut.h")!=0
- letcompileflag.="-lglut-lGLU-lGL"
- endif
- ifsearch("cv.h")!=0
- letcompileflag.="-lcv-lhighgui-lcvaux"
- endif
- ifsearch("omp.h")!=0
- letcompileflag.="-fopenmp"
- endif
- ifsearch("math.h")!=0
- letcompileflag.="-lm"
- endif
- execcompilecmd."%".compileflag
- endfunc
- func!CompileGpp()
- exec"w"
- letcompilecmd="!g++"
- letcompileflag="-o%<"
- ifsearch("mpi.h")!=0
- letcompilecmd="!mpic++"
- endif
- ifsearch("glut.h")!=0
- letcompileflag.="-lglut-lGLU-lGL"
- endif
- ifsearch("cv.h")!=0
- letcompileflag.="-lcv-lhighgui-lcvaux"
- endif
- ifsearch("omp.h")!=0
- letcompileflag.="-fopenmp"
- endif
- ifsearch("math.h")!=0
- letcompileflag.="-lm"
- endif
- execcompilecmd."%".compileflag
- endfunc
- func!RunPython()
- exec"!python%"
- endfunc
- func!CompileJava()
- exec"!javac%"
- endfunc
- func!CompileCode()
- exec"w"
- if&filetype=="cpp"
- exec"callCompileGpp()"
- elseif&filetype=="c"
- exec"callCompileGcc()"
- elseif&filetype=="python"
- exec"callRunPython()"
- elseif&filetype=="java"
- exec"callCompileJava()"
- endif
- endfunc
- func!RunResult()
- exec"w"
- ifsearch("mpi.h")!=0
- exec"!mpirun-np4./%<"
- elseif&filetype=="cpp"
- exec"!./%<"
- elseif&filetype=="c"
- exec"!./%<"
- elseif&filetype=="python"
- exec"callRunPython"
- elseif&filetype=="java"
- exec"!java%<"
- endif
- endfunc
- map<F5>:callCompileCode()<CR>
- imap<F5><ESC>:callCompileCode()<CR>
- map<F6>:callRunResult()<CR>
- "自动补齐功能,需要先安装neocomplcache
- letg:neocomplcache_enable_at_startup=1
- imap<F4><ESC>:A<CR>i
- nmap<F4>:A<CR>
相关推荐
vim配置 vim 配置 整理出来大家一起学习
vim 配置 开发更好用。 在~/目录下解压。 安装 .git-completion.bash(从github/git中取得)
vim配置C/C++开发环境,包括函数补全小括号补全等等,基本跟ide差不多,内附步骤。 注:vim中需要使用tab键来调出下拉框
vim配置文件vim配置文件vim配置文件
vim配置文件 vimrc vim配置文件 vimrc vim配置文件 vimrc
自用的vim做php开发的配置,集成ctags,javascript格式化,php代码补全,NERDTree,TAB补全...等一系列有用插件集成
vim配置插件
强大的vim配置文件,强大的vim配置文件强大的vim配置文件强大的vim配置文件强大的vim配置文件
vim插件基础配置,vim-plug
vim简单的配置文件
Linux vim环境配置
vim配置文件,vim配置文件
vim配置包
vim爱好者的首选vim的终极配置
vim常用配置,插件,用于形成打造VIMIDE
vim配置+各种颜色方案
下载vimconfig.tar.tgz,将文件拷贝到ubuntu, 执行下面命令: tar zxvf vimconfig.tar.tgz cd vimconfig cp .* ~/ -rvf 部分配置情况: "-------------TagList--------------- "设置ctags路径 let Tlist_Ctags_Cmd ...
该配置文件包含了设置行号、Tab...具体说明可以参考我的文章《【Linux成长之路基础篇:玩转vim(vi)编辑器】三大模式及命令介绍、如何通过配置文件.vimrc配置vim》第三章《三、vim配置文件.vimrc》里面有详细的介绍。
vim编辑器 配置自定义vim编辑器 配置自定义
vim自不必说,如果搭上Tlist利器,那么在linux下的开发将犹如eclipse下游刃有余,好东西一定要分享哦!