"General======================================================= set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 syntax on "语法高亮 set showcmd set showmode set hlsearch " 搜索高亮 set incsearch " 增量查找 "set is " 未输入完毕就开始搜索 set showmatch set backspace=indent,eol,start "退格键正常,去掉与vi的一致性 " backspace,h,左右方向键,跨行作用 set whichwrap=b,h,<,>,[,] " Vim 的默认寄存器和系统剪贴板共享 set clipboard+=unnamed
set ruler "显示光标行号列号 set autoread "文件改动时,自动载入 set number "显示行号 set wrap "自动折行 set textwidth=0 "启动后默认值78,会自动插入回车 "set tw=80 " 保留历史记录 set history=400
"缩进设置-------------------------------------------- set shiftwidth=4 "自动缩进字符数 set tabstop=4 " 制表符宽度 set expandtab "自动把tab转成空格, "如果此时需要输入真正的 tab,则输入 Ctrl+V, tab,在 Windows 下是 Ctrl+Q, tab set smarttab set shiftwidth=4 "表示每一级缩进的长度 set softtabstop=4 "编辑模式的时候按退格键的时候退回缩进的长度 filetype indent on "文件类型检测
" 状态栏------------------------------- set laststatus=2 "显示状态栏 set statusline=[B:%n]\ "缓冲区编号 "set statusline+=%9.20F\ "全路径文件名,显示最短9-20个字符 set statusline+=%t\ "文件名,无路径 set statusline+=%m%r%h%w\ set statusline+=%= "左对齐和右对齐分界 set statusline+=Ln:%l\/%L,\ Col:%v\ set statusline+=[%p%%]\ set statusline+=[%{&ff}:%{&fenc!=''?&fenc:&enc}:%{(&bomb?\",BOM\":\"\")}]\ set statusline+=[%Y]\ "文件类型 "set statusline+=%{strftime(\"%d/%m/%y\ -\ %H:%M\")}\ "set statusline=%1*\%<%.50F\ "显示文件名和文件路径 (%<应该可以去掉) "set statusline+=%3*\%{&ff}\[%{&fenc}]\ %* "显示文件编码类型 "set statusline+=%4*\ row:%l/%L,col:%c\ %* "显示光标所在行和列 "set statusline+=%5*\%3p%%\%* "显示光标前文本所占总文本的比例 "
"Lang & Encoding======================================================= "编码设置 set encoding=utf-8 set fileencodings=utf-8,gbk,ucs-bom,cp936 "set fileencoding=utf-8 "强制以utf-8保存文件 "解决菜单乱码 set langmenu=zh_CN.utf-8 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim "解决consle输出乱码 language messages zh_CN.utf-8 set termencoding=gbk
"防止特殊符号无法正常显示。在 Unicode "中,许多来自不同语言的字符, "如果字型足够近似的话,会把它们放在同一个编码中。但在不同编码中,字 "符的宽度是不一样的。例如中文汉语拼音中的 "ā 就很宽,而欧洲语言中 "同样的字符就很窄。当 VIM 工作在 Unicode "状态时,遇到这些宽度不明 "的字符时,默认使用窄字符,这会导致中文的破折号“——”非常短,五角 "星“★”等符号只能显示一半。因此,我们需要设置 "ambiwidth=double 来 "解决这个问题。 set ambiwidth=double