" File: _vimrc
" Last Change: 1 September, 2011
" ============================================================================
set autochdir " 自动切换当前目录为当前文件所在的目录
set cursorline " 突出显示当前行
set equalalways " 分割窗口时保持相等的宽/高
set nocompatible " 关闭 vi 兼容模式
set number " 显示行号
set nobackup " 覆盖文件时不备份
set noswapfile " 编辑时不产生交换文件
set noexpandtab " 插入 tab 符号不以空格替换
set history=1000 " 设置冒号命令和搜索命令的命令历史列表的长度
set autoindent " 开启自动缩进
set smartindent " 开启新行时使用智能自动缩进
set smarttab " 开启新行时使用智能 tab 缩进
set tabstop=4 " 设定 tab 长度为 4
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
"set guifont=Bitstream_Vera_Sans_Mono:h12:b:cANSI
set backspace=indent,eol,start
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set guioptions=t " 隐藏菜单栏、工具栏、滚动条
set ruler " 打开状态栏标尺
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set ignorecase " 搜索时忽略大小写
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"colorscheme ego " 配色方案
syntax on " 自动语法高亮
filetype plugin indent on
"-----------------------------------------------------------------
" Omni Complete 自动补全
"-----------------------------------------------------------------
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType python set omnifunc=pythoncomplete#Complete
au GUIEnter * simalt ~x
"-----------------------------------------------------------------
" F2 工具栏和菜单栏交替切换
"-----------------------------------------------------------------
map <silent> <F2> :if &guioptions =~# 'T' <Bar>
\set guioptions-=T <Bar>
\set guioptions-=m <bar>
\else <Bar>
\set guioptions+=T <Bar>
\set guioptions+=m <Bar>
\endif<CR>
"-----------------------------------------------------------------
" plugin - NERD_tree.vim 以树状方式浏览系统中的文件和目录
" :NERDtree 打开NERD_tree :NERDtreeClose 关闭NERD_tree
" o 打开关闭文件或者目录 t 在标签页中打开
" T 在后台标签页中打开 ! 执行此文件
" p 到上层目录 P 到根目录
" K 到第一个节点 J 到最后一个节点
" u 打开上层目录 m 显示文件系统菜单(添加、删除、移动操作)
" r 递归刷新当前目录 R 递归刷新当前根目录
"-----------------------------------------------------------------
" F3 NERDTree 切换
map <F3> :NERDTreeToggle<CR>
imap <F3> <ESC>:NERDTreeToggle<CR>
"-----------------------------------------------------------------
" plugin - zencoding.vim 快速生成 HTML代码
" CTRL+E 展开 zencoding 代码片段
"-----------------------------------------------------------------
let g:user_zen_expandabbr_key = '<c-e>'
let g:use_zen_complete_tag = 1
"-----------------------------------------------------------------
" plugin - NERD_commenter.vim 注释代码用的
" [count],cc 光标以下count行逐行添加注释(7,cc)
" [count],cu 光标以下count行逐行取消注释(7,cu)
" [count],cm 光标以下count行尝试添加块注释(7,cm)
" ,cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释
" 注:count参数可选,无则默认为选中行或当前行
"-----------------------------------------------------------------
let NERDSpaceDelims=1 " 让注释符与语句之间留一个空格
let NERDCompactSexyComs=1 " 多行注释时样子更好看