“============================
”任何system通用
“============================
" 显示中文帮助
if version >= 603
set helplang=cn
set encoding=utf-8
endif
" 设定默认解码
"set fenc =utf-8
"set fenc =utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
" 设定不与以前版本兼
set nocompatible
set backspace=indent,eol,start
set nocp
" 设置配色方案
colorscheme murphy
" 显示行号
set nu
" 侦测文件类型
filetype on
" 设置当文件被改动时自动载入
set autoread
"设置字体类型和大小 在窗口下使用 set guifont? 可以看到该命令
set gfn=Monospace/ 10
" 记录历史的行数
set history=100
" 显示语法高亮
syntax enable
syntax on
" 在处理未保存或只读文件的时候,弹出确认
set confirm
" 与windows共享剪贴板
set clipboard+=unnamed
" 载入文件类型插件
filetype plugin on
filetype indent on
" 为特定文件类型载入相关缩进文件
filetype indent on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 设置鼠标一直可用
set mouse=a
" 高亮当前行
set cursorline
" 命令行高度
set cmdheight=1
" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI
" 不让vim发出讨厌的滴滴声
set noerrorbells
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:/ ,stl:/ ,stlnc:/
""""""""""""""""""""""""""""
" 文件设置
""""""""""""""""""""""""""""
" 不要备份文件(覆盖文件时不备份)
set nobackup
" 不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 置粘贴模式,使得粘贴不错位
" set paste
" 保存文件,用习惯了Ctrl+S了
" nmap <C-s> <esc>:w<CR>
" imap <C-s> <esc>:w<CR>
noremap <C-S> :update<CR>
vnoremap <C-S> <C-C>:update<CR>
inoremap <C-S> <C-O>:update<CR>
imap jj <esc>
imap JJ <esc>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索和匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 高亮显示匹配的括号
set showmatch
" 高亮显示被找到的句子(phrases)
"set hlsearch
" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索),即输入搜索内容时就显示搜索结果
set incsearch
" 搜索时忽略大小写
set ignorecase
" 不要闪烁
set novisualbell
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本格式和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自动格式化
set formatoptions=tcrqn
" 继承前一行的缩进方式,特别适用于多行注释
set autoindent
" 为C程序提供自动缩进
set smartindent
" 使用C样式的缩进
set cindent
" 制表符为4
set tabstop=4
" 统一缩进为4
" 使得按退格键时可以一次删掉 4 个空格
set softtabstop=4
" 设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab
" 设置每行120个字符自动换行
set textwidth=120
" 自动切换当前目录为当前文件所在的目录
set autochdir
" 折叠代码
set foldmethod=syntax
" 文件打开时不折叠
set foldlevel=100
"""""""""""""""""""""""""""""""""""""""""""
"自动实例括号
"""""""""""""""""""""""""""""""""""""""""""
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 " ""<ESC>i
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "/<Right>"
else
return a:char
endif
endf
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""
" set mapleader
""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let mapleader = ","
" platform
function! MySys()
if has("win32")
return "windows"
else
return "linux"
endif
endfunction
" if file not opened, create a new tab, or switch to the opened file
function! SwitchToBuf(filename)
" find in current tab
let bufwinnr = bufwinnr(a:filename)
if bufwinnr != -1
exec bufwinnr . "wincmd w"
return
else
" search each tab
tabfirst
let tb = 1
while tb <= tabpagenr("$")
let bufwinnr = bufwinnr(a:filename)
if bufwinnr != -1
exec "normal " . tb . "gt"
exec bufwinnr . "wincmd w"
return
endif
tabnext
let tb = tb +1
endwhile
" not exist, new tab
exec "tabnew " . a:filename
endif
endfunction
" fast edit .vimrc
if MySys() == 'linux'
" fast reloading of the .vimrc
map <silent> <leader>ss :source ~/.vimrc<cr>
" fast editing of the .vimrc
map <silent> <leader>ee :call SwitchToBuf("~/.vimrc")<cr>
" when .vimrc is edited, reload it
autocmd! bufwritepost .vimrc source ~/.vimrc
elseif MySys() == 'windows'
" Set helplang
set helplang=cn
"Fast reloading of the _vimrc
map <silent> <leader>ss :source ~/_vimrc<cr>
"Fast editing of _vimrc
map <silent> <leader>ee :call SwitchToBuf("~/_vimrc")<cr>
"When _vimrc is edited, reload it
autocmd! bufwritepost _vimrc source ~/_vimrc
endif
if MySys() == 'windows'
source $VIMRUNTIME/mswin.vim
behave mswin
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""
" 状态行相关动作
"""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 显示状态栏 (默认值为 1, 无法显示状态栏)
set laststatus=2
" 状态行颜色
highlight StatusLine guifg=#FFFFFF guibg=#00008B
highlight StatusLineNC guifg=#FFFFFF guibg=#00008B
function! CurDir()
let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")
return curdir
endfunction
"""""""""""""""""""""""""""""""
"状态行显示内容
"""""""""""""""""""""""""""""""
" %F 当前文件名
" %m 当前文件修改状态
" %r 当前文件是否只读
" %Y 当前文件类型
" %{&fileformat} 当前文件编码
" %b 当前光标处字符的 ASCII 码值
" %B 当前光标处字符的十六进制值
" %l 当前光标行号
" %c 当前光标列号
" %V 当前光标虚拟列号 (根据字符所占字节数计算)
" %p 当前行占总行数的百分比
" %% 百分号
" %L 当前文件总行数
set statusline=/ %F%m%r%h/ %w/ / CWD:/ %r%{CurDir()}%h/ / / Line:/ %l/%L:%c
" 设置在状态行显示的信息如下:
set completeopt=menu
let NERDShutUp=1
map fg : Dox<cr>
let g:DoxygenToolkit_authorName="wangye"
let g:DoxygenToolkit_licenseTag="My own license/<enter>"
let g:DoxygenToolkit_undocTag="DOXIGEN_SKIP_BLOCK"
let g:DoxygenToolkit_briefTag_pre = "@brief/t"
let g:DoxygenToolkit_paramTag_pre = "@param/t"
let g:DoxygenToolkit_returnTag = "@return/t"
let g:DoxygenToolkit_briefTag_funcName = "no"
let g:DoxygenToolkit_maxFunctionProtoLines = 30
color lucius
"minibufexplorer插件
let g:winManagerWindowLayout = "FileExplorer"
"NERDTree plugin
let NERDTreeWinPos = "right" "where NERD tree window is placed on the screen
let NERDTreeWinSize = 31 "size of the NERD tree
nmap <F8> <ESC>:NERDTreeToggle<RETURN>" Open and close the NERD_tree.vim separately
let NERDShutUp=1
autocmd BufEnter * call DoWordComplete()
set nu
set t_Co=256