source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
if has("gui_running")
"设置编码格式&帮助语言
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set helplang=cn,en
"解决菜单乱码
set langmenu=chinese
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
endif
"字体设置
set guifont=Dejavu_Sans_Mono:h14:cANSI
"set gfn=YaHei\ Consolas\ Hybrid:h10
"set gfn=YaHei\ Consolas\ Hybrid:h11
"set guifontwide=YaHei\ Consolas\ Hybrid:h11
" set guifont=Courier_New:h11
" set guifontwide=YaHei\ Consolas\ Hybrid:h11
"if has("win32")
"set guifont=Courier_New:h12:cANSI
"set guifontwide=YouYuan:h12:cGB2312
"au GUIEnter * simalt ~x
"elseif has("mac") || has("macunix")
" set guifont=Courier:h14
" set guifontwide=Hei_Regular:h14
" colorscheme tabula
"else
" set guifont=
" set guifontwide=
"endif
"设置窗口的起始位置和大小
winpos 300 200
"winpos 250 200
"set lines=22
set lines=30
set columns=100
"gvim启动最大化
"autocmd GUIEnter * simalt ~x
"Terminal(win下的终端)
if(has("win32") || has("win95") || has("win64") || has("win16"))
map
else
map
endif
"colorscheme Murphy "配色方案
colorscheme desert
"colorscheme inkpot
"colorscheme ir_black
"colorscheme koehler
"colorscheme wombat256
"set shortmess=atI "启动的时候不显示那个援助索马里儿童的提示
"hi Comment ctermfg=DarkCyan "修改默认注释颜色
syntax on "语法高亮
filetype on "侦测文件类型
filetype plugin on "载入文件类型插件
filetype indent on "为特定文件类型载入相关缩进文件
set showmatch "高亮显示匹配的括号
set matchtime=2 "匹配括号高亮的时间(单位是十分之一秒)
set cmdheight=1 "命令行(在状态行下)的高度,默认为1,
set noexpandtab "不要用空格代替制表符
set smarttab "在行和段开始处使用制表符
set wrap "自动换行显示
set number "显示行号儿
set report=0 "通过使用: commands命令,告诉我们文件的哪一行被改变过
set viminfo+=! "保存全局变量
set iskeyword+=_,$,@,%,#,- "带有如下符号的单词不要被换行分割
set backspace=2 "使回格键(backspace)正常处理indent, eol, start等
set whichwrap+=<,>,h,l "允许backspace和光标键跨越行边界
set linespace=1 "字符间插入的像素行数目
set wildmenu "增强模式中的命令行自动完成操作
set nolinebreak "不在单词中间断行
set showcmd "在状态栏显示目前所执行的指令,未完成的指令片段亦会显示出来
set backspace=indent,eol,start "在insert模式下能用删除键进行删除
set completeopt=longest,menu "关掉智能补全时的预览窗口,这样可以防止闪屏现象
set textwidth=120 "设置最大列数,超出后自动换行
set history=400 "历史记录数
set autoread "当文件在外部被修改,自动更新该文件
set gdefault "行内替换
set clipboard+=unnamed "与windows共享剪贴板
set tabpagemax=40
"自动缩进
set autoindent " 继承前一行的缩进方式,特别适用于多行注释
set cindent " 使用C样式的缩进
set smartindent "为C程序提供自动缩进
set expandtab
set foldmethod=marker
"Tab键的宽度
set tabstop=4
"统一缩进为4
set softtabstop=4
set shiftwidth=4
"关闭备份
set nobackup
set nowritebackup
set noswapfile
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"设置语法折叠
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
"set foldmethod=indent " 根据缩进折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=1 " 设置折叠层数为
set foldclose=all " 设置为自动关闭折叠
"打开文件是默认不折叠代码
set foldlevelstart=99
"用空格键来开关折叠
nnoremap
"设定文件浏览器目录为当前目录
set bsdir=buffer
set autochdir
"读文件时自动设定当前目录为刚读入文件所在的目录
autocmd BufReadPost * cd %:p:h
"不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide
"先尝试windows格式,再尝试unix格式,然后尝试mac格式
set fileformats=dos,unix,mac
"开启底部滚动条
"set guioptions+=b
"Set magic on
set magic
"当有错误时不发出声音
set flash
set noerrorbells
set novisualbell
set t_vb=
"使得注释换行时自动加上前导的空格和星号
set formatoptions=tcqro
"在被分割的窗口间显示空白,便于阅读
"set fillchars=vert:\ ,stl:\ ,stlnc:\
"光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
"可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
"关掉智能补全时的预览窗口
set completeopt=longest,menu
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"快捷键map
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"设置控制键为,逗号
let mapleader = ","
let g:mapleader = ","
"noremap
",/ 注释当前行
noremap
inoremap
inoremap
noremap
noremap
"按jj保存退出编辑模式"
inoremap jj
cnoremap jj
"Alt+h,j,k,l 不退出编辑模式移动光标
inoremap
inoremap
inoremap
inoremap
"打开tlist"
noremap
"切换tlist与输入界面
noremap
"切换到下一个标签页
noremap
"切换上一个标签页"
noremap
"打开文件在显示页显示"
noremap
"tab键缩进
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"php代码补全
"""""""""""""""""""""""""""""""""""""""""""""""""
au FileType php call PHPFuncList()
function PHPFuncList()
set dictionary-=$VIM/vimfiles/doc/php_funclist.txt
set dictionary+=$VIM/vimfiles/doc/php_funclist.txt
set complete-=k complete+=k
endfunction
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"标签
":tabnew 新建标签页
":tabs 显示已打开标签页的列表
":tabc 关闭当前标签页
":tabn 移动到下一个标签页
":tabp 移动到上一个标签页
":tabfirst 移动到第一个标签页
":tablast 移动到最后一个标签页
":tabm 1 移动标签到指定位置 从0开始计
":tabr 切换到第一个标签
":tabl 切换到最后一个标签
":tabo 关闭所有其他的tab
set showtabline=2 "始终显示标签页
set tabpagemax=15 "最大显示数
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" NERDTree的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
",m快捷键
noremap
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"始终显示菜单
"let NERDTreeChDirMode=2
" 如果用t T i 打开文件后自动退出NERDTree,
let NERDTreeQuitOnOpen = 1
let NERDTreeHighlightCursorline=1 "高亮NERDTrre窗口的当前行
let NERDTreeSortOrder=['//$','/.cpp$','/.c$','/.h$', '*'] "排序
" 总是显示Bookmark
let NERDTreeShowBookmarks = 1
" 总是显示行号
"let NERDTreeShowLineNumbers=1
" NERDTree 窗口大小
let NERDTreeWinSize = 20
" A 可使NERDTree窗口最大化Toggle it.
"过滤文件,使用正则表达式
let NERDTreeIgnore=['\.pdf$','\.doc','\.wmv','\.flv']
let NERDTreeShowHidden=0 "不显示隐藏文件(好像只在linux环境中有效)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"状态栏显示"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set laststatus=2 " always show the status line
set wildmenu
set wildmode=list:longest,full
" ignore these list file extensions
set wildignore=*.dll,*.o,*.obj,*.exe,*.pyc,\*.jpg,*.gif,*.png,*.pdf
"我的状态行显示的内容(包括文件类型和解码)
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"状态栏设置:文件路径、文件名、标记、文件类型、字符编码、文件格式、当前位置、当前字符位置、文件总行数、日期、星期
set statusline=%F\ %h%1*%m%r%w%0*[%{strlen(&filetype)?&filetype:'none'},%{&encoding},%{&fileformat}]%=%-14.(%l,%c%V%)\ %<%p%%\ \ \ [%L]\ \ \ %{strftime('%Y-%m-%d\ -\ %H:%M\ %A')}
"在编辑过程中,在右下角显示光标位置的状态行
set ruler
set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)
"高亮鼠标位置
if has("gui_running")
"cursorline highlight(高亮当前行)
set cursorline
hi CursorLine guibg=#666666
hi CursorColumn guibg=#333333
"cursorcolumn highlight(高亮当前列)
"set cursorcolumn
"highlight CursorLine cterm=none ctermbg=2 ctermfg=0
endif
"进入插入模式时改变状态栏颜色(仅限于Vim 7)
if version >= 700
au InsertEnter * hi StatusLine guibg=#818D29 guifg=#FCFCFC gui=none
au InsertLeave * hi StatusLine guibg=#EEEEEE guifg=#363636 gui=none
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"F2 显示菜单栏,默认不显示,
"Toggle Menu and Toolbar
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set guioptions-=m
set guioptions-=T
map
\set guioptions-=T
\set guioptions-=m
\else
\set guioptions+=T
\set guioptions+=m
\endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"打开窗口最大化
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has('win32')
au GUIEnter * simalt ~x
else
au GUIEnter * call MaximizeWindow()
endif
function! MaximizeWindow()
silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
endfunction
"================================tlist
set tags=tags;
set autochdir
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 按照名称排序
let Tlist_Sort_Type = "name"
" 在右侧显示窗口
let Tlist_Use_Right_Window = 1
" 压缩方式 Remove extra information and blank lines from the taglist window.
let Tlist_Compact_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exit_OnlyWindow = 1
"auto open Tlist when vim open
let Tlist_Auto_Open = 0
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0
" taglist 窗口宽度
let Tlist_WinWidth = 22
" no inc the width of the windows
let Tlist_Inc_Winwidth = 1
" Close tag folds for inactive buffers.
let Tlist_File_Fold_Auto_Close = 1
"To process files even when the taglist window is not open.
let Tlist_Process_File_Always = 1
"display the tags defined only in the current buffer
let Tlist_Show_One_File = 1