我的.vimrc文件

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就是结束配对
这里的双引号没法用,我也不知道为什么!

相关文章

普通模式 >G 增加当前行到文档末尾处的缩紧层级 $ 移动到本行的末尾 . 相当于一个...
原文连接: https://spacevim.org/cn/layers/lang/elixir/ 模块简介 功能特性 启用模块 快捷键 语言专属...
原文连接: https://spacevim.org/cn/layers/lang/dart/ 模块简介 功能特性 依赖安装及启用模块 启用模...
 =   赋值操作符,可以用于算术和字符串赋值 +        加法计算     -        减法运算...
1.根据包名来查看指定的APP指定数据 adb shell "top | grep com.xxx.xxx" 由于这样打印出来的数...
ctrl+F 向下翻页 ctrl+B 向下翻页 u 取消最近一次操作 U 取消当前行的操作 ZZ 保存当前内容并退出 gg 跳...