colorschememurphy"设置配色方案 setnocompatible"关闭vi兼容模式 Syntaxon"开启语法高亮 setnu"显示行号 setcursorline"突出显示当前行 setruler"打开状态栏标尺 setshiftwidth=4"设定<<和>>命令移动时的宽度为4 setsofttabstop=4"使得按退格键时可以一次删掉4个空格 settabstop=4"设定tab长度为4 setnobackup"覆盖文件时不备份 filetypepluginindenton"开启插件 setbackupcopy=yes"设置备份时的行为为覆盖 setignorecasesmartcase"搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感 setnowrapscan"禁止在搜索到文件两端时重新搜索 setincsearch"输入搜索内容时就显示搜索结果 sethlsearch"搜索时高亮显示被找到的文本 setnoerrorbells"关闭错误信息响铃 setnovisualbell"关闭使用可视响铃代替呼叫 sett_vb="置空错误铃声的终端代码 setmagic"设置魔术 sethidden"允许在有未保存的修改时切换缓冲区,此时的修改由vim负责保存 setguioptions-=T"隐藏工具栏 setguioptions-=m"隐藏菜单栏 setsmartindent"开启新行时使用智能自动缩进 setbackspace=indent,eol,start"不设定在插入状态无法用退格键和Delete键删除回车符 setcmdheight=1"设定命令行的行数为1 setlaststatus=2"显示状态栏(默认值为1,无法显示状态栏) setstatusline=\%<%F[%1*%M%*%n%R%H]%=\%y\%0(%{&fileformat}\%{&encoding}\%c:%l/%L%)\"设置在状态行显示的信息 sethelplang=cn"显示中文帮助 "新建.c,.h,.sh,.java文件,自动插入文件头 autocmdBufNewFile*.sh,*.pycallSetTitle() """定义函数SetTitle,自动插入文件头 funcSetTitle() "如果文件类型为.sh文件 if&filetype=='sh' callsetline(1,"\#!/bin/bash") callappend(line("."),"\#########################################################################") callappend(line(".")+1,"\#FileName:".expand("%")) callappend(line(".")+2,"\#Author:huxianyong") callappend(line(".")+3,"\#mail:hxy123@163.com") callappend(line(".")+4,"\#CreatedTime:".strftime("%y-%m-%d%A%H:%M:%S")) callappend(line(".")+5,"\#########################################################################") normalG "G就是到文件最后一行和vim里面的G一样 normalo "o就是相当于一个回车 normalo else callsetline(1,"\#!/usr/bin/python") callappend(line("."),"\#-*-coding:utf8-*-") callappend(line(".")+1,"\#*************************************************************************") callappend(line(".")+2,"\#FileName:".expand("%")) callappend(line(".")+3,"\#Author:huxianyong") callappend(line(".")+4,"\#Mail:hxy123@163.com") callappend(line(".")+5,"\#CreatedTime:".strftime("%c")) callappend(line(".")+6,"\#************************************************************************") normalG normalo normalo endif "新建文件后,自动定位到文件末尾 autocmdBufNewFile*normalG endfunc "设置编码格式,字符编码 setfencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 settermencoding=utf-8 setencoding=utf-8 setguifont=Courier_New:h10:cANSI"设置字体 Syntaxon"语法高亮 autocmdInsertLeave*senocul"用浅色高亮当前行 setpastetoggle=<F3>"F3不缩进 setcompleteopt=preview,menu"自动补全 :inoremap(()<ESC>i :inoremap)<c-r>=ClosePair(')')<CR> :inoremap{{}<ESC>i :inoremap}<c-r>=ClosePair('}')<CR> :inoremap[[]<ESC>i :inoremap]<c-r>=ClosePair(']')<CR> :inoremap"""<ESC>i ":inoremap"<c-r>=ClosePair('"')<CR> :inoremap'''<ESC>i :inoremap'<c-r>=ClosePair('\'')<CR> :inoremap<<><ESC>i :inoremap><c-r>=ClosePair('>')<CR> function!ClosePair(char) ifgetline('.')[col('.')-1]==a:char return"\<Right>" else returna:char endif endfunction filetypepluginindenton "打开文件类型检测,加了这句才可以用智能补全 setcompleteopt=longest,menu
这里的自动补全只限于使用ctrl+n的时候补全上面已出现的单词,而不是补全没出现过的单词.
值得注意的是,这里的自动补全里的符号成对补全出现
如果输入了( { '"就会出现(){}''""
但是如果我们的 :inoremap(()<ESC>i空格这样输入(就会变成了()而不是()这样了 如果 :inoremap)<c-r>=ClosePair(')')<CR>空格这样输入)就会变成了)空格 其他的符号是一样的,我在vim编辑的时候出现这个问题,找了老半天才发现是这里的问题
这里的<ESC>就是退出编辑模式,i就是进入编辑模式{<CR>}就是换行,ClosePair就是结束配对 这里的双引号没法用,我也不知道为什么!