我的vim配置

参考: http://www-vlsi.stanford.edu/~jsolomon/vim/

http://vimcdoc.sourceforge.net/doc/syntax.html#:highlight-link

http://blog.youkuaiyun.com/wooin/article/details/1858917




"====================================================================================

“  bash script to update cscope.out & tags

#update ctags & cscope
find $pwd -name "*.h" -o -name "*.cpp" -o -name "*.c" > cscope.files
cscope -bkq -i cscope.files

ctags -R


"====================================================================================

"my .vimrc

set nocompatible            " 关闭 vi 兼容模式

colorscheme desert         " 设定配色方案

color myscheme


filetype plugin indent on   " 开启插件
set shiftwidth=4            " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4           " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4               " 设定 tab 长度为 4
"set expandtab
set autochdir               " 自动切换当前目录为当前文件所在的目录
set ignorecase smartcase    " 搜索时忽略大小写,但在有一个或以上大写字母时仍大小写敏感
set nowrapscan              " 禁止在搜索到文件两端时重新搜索
set incsearch               " 输入搜索内容时就显示搜索结果
set hlsearch                " 搜索时高亮显示被找到的文本
set noerrorbells            " 关闭错误信息响铃
set novisualbell            " 关闭使用可视响铃代替呼叫
set t_vb=                   " 置空错误铃声的终端代码
"set showmatch               " 插入括号时,短暂地跳转到匹配的对应括号
"set matchtime=1             " 短暂跳转到匹配括号的时间
"set nowrap                  " 不自动换行
set magic                  " 显示括号配对情况
set hidden                  " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
"set smartindent             " 开启新行时使用智能自动缩进
set backspace=indent,eol,start "不设定在插入状态无法用退格键和 Delete键删除回车符
set cmdheight=1             " 设定命令行的行数为 1
set laststatus=2            " 显示状态栏 (默认值为 1, 无法显示状态栏)
set foldenable              " 开始折叠
set foldmethod=syntax       " 设置语法折叠
set foldcolumn=0            " 设置折叠区域的宽度
setlocal foldlevel=1        " 设置折叠层数为

"编码格式

set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set encoding=prc


"记录上次编辑文件时位置
au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif


" 显示Tab符
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<
set list


"设置代码折叠方式为 手工  indent
set foldmethod=indent
""设置代码块折叠后显示的行数
set foldexpr=1
" 设定doc文档目录
let helptags=$VIMFILES.'/doc'
set helplang=cn
"set nobomb


set whichwrap+=<,>,h,l
set shell=/bin/bash
set fenc=utf-8 "设定默认解码 
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 
set writebackup
""把undo历史保存到文件里,这样undo不会因为vim的关闭而丢失
set undofile
set undodir=~/.tmp/undo
""每次编辑文件都会在指定文件夹里留个备份
set backup
set backupdir=~/.tmp/backup


" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
" 总是显示状态行
set laststatus=2
" 在编辑过程中,在右下角显示光标位置的状态行
set ruler          




" Turn off incremental searching for files over 10,000,000 bytes. It's too slow.
function! IncSearch()
  if line2byte(line("$")) < 10000000
    set incsearch
  else
    set noincsearch
  endif
endfunction


if &term=="xterm"
    set t_Co=8
    set t_Sb=^[[4%dm
    set t_Sf=^[[3%dm
endif


"========================================================
" taglist settings 
"========================================================
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1






"========================================================
" winmanager settings
"========================================================
"let g:winManagerWindowLayout='FileExplorer|TagList'
"nmap wm :WMToggle<cr>


"========================================================
" vim7 支持标签
"========================================================
"设置标签页最大个数

set tabpagemax=20

"总是显示tab栏

set showtabline=2



"========================================================
" new-omni-completion settings
"========================================================
set completeopt=longest,menu


"========================================================
" supertab settings
"========================================================
"let g:SuperTabDefaultCompletionType="<C-X><C-O>"
" 设置按下<Tab>后默认的补全方式, 默认是<C-P>, 
" 现在改为<C-X><C-O>. 关于<C-P>的补全方式, 
" 还有其他的补全方式, 你可以看看下面的一些帮助:
" :help ins-completion
" :help compl-omni
"let g:SuperTabRetainCompletionType=2
" 0 - 不记录上次的补全方式
" 1 - 记住上次的补全方式,直到用其他的补全命令改变它
" 2 - 记住上次的补全方式,直到按ESC退出插入模式为止


"========================================================
" pathogen 
"========================================================
"call pathogen#runtime_append_all_bundles() 


"========================================================
" cscope settings
"========================================================
:set cscopequickfix=s-,c-,d-,i-,t-,e-
if has("cscope")
  set csprg=/usr/local/bin/cscope
  set csto=1
  set cst
  set nocsverb
  " add any database in current directory
  if filereadable("cscope.out")
      cs add cscope.out
  endif
  set csverb
endif


nmap <C-F>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-F>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-F>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-F>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-F>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-F>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-F>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-F>d :cs find d <C-R>=expand("<cword>")<CR><CR>






"========================================================
" set tags 
"========================================================
if filereadable("tags")
:set tags=$pwd/tags
endif

 


syntax on                   " 自动语法高亮
syntax enable





"================================================================================================

"=========================

"c.vim

"========================================================
"highlight Functions
"========================================================
syn match cFuntions display "[a-zA-Z_]\{-1,}\s\{-0,}(\{1}"ms=s,me=e-1

hi link     cFuntions         Function

"========================================================
" Highlight All Math Operator
"========================================================
" C math operators
syn match cMathOperator display "[-+\*\%=]"
" C pointer operators
syn match cPointerOperator display "->\|\."
" C logical operators - boolean results
syn match cLogicalOperator display "[!<>]=\="
syn match cLogicalOperator display "=="
" C bit operators
syn match cBinaryOperator display "\(&\||\|\^\|<<\|>>\)=\="
syn match cBinaryOperator display "\~"
syn match cBinaryOperatorError display "\~="
" More C logical operators - highlight in preference to binary
syn match cLogicalOperator display "&&\|||"
syn match cLogicalOperatorError display "\(&&\|||\)="


hi link   cMathOperator         Operator
hi link   cPointerOperator     Operator
hi link   cLogicalOperator     Operator
hi link   cBinaryOperator       Operator
hi link    cBinaryOperatorError   Operator
hi link    cLogicalOperator        Operator
hi link    cLogicalOperatorError   Operator


"========================================================
" My Own DataType
"========================================================
"syn keyword cType       My_Type_1 My_Type_2 My_Type_3



"========================================================
" myscheme.vim
"========================================================
" Vim color file
" grey on black
"
set background=dark
hi clear
if exists("syntax_on")
  syntax reset
endif
"colorscheme default
let g:colors_name = "myscheme"


" hardcoded colors :
" GUI Comment : #80a0ff = Light blue


" ============
" GUI
" ============
highlight Normal     guifg=Grey80|  guibg=Black
highlight Search     guifg=Black|   guibg=Red|  gui=bold
highlight Visual     guifg=#404040| |   |   gui=bold
highlight Cursor     guifg=Black|   guibg=Green|gui=bold
highlight Special    guifg=Orange
highlight StatusLine guifg=blue||   guibg=white


" ============
" Console
" ============
highlight Normal     ctermfg=LightGrey| ctermbg=Black
highlight Search     ctermfg=Black| ctermbg=Red|cterm=NONE
highlight Visual|   |   |   |   |   cterm=reverse
highlight Cursor     ctermfg=Black| ctermbg=Green|  cterm=bold
highlight Special    ctermfg=Brown
highlight StatusLine ctermfg=blue|  ctermbg=white




"========================================================
" syntax
"========================================================
hi |Comment        guifg=#80a0ff |  ctermfg=LightGrey | " 任何注释


hi |Constant       guifg=#d1117f  | ctermfg=LightCyan|  |   " 任何常数
hi |String         guifg=#d1117f  | ctermfg=LightMagenta|   " 字符串常数
hi |Character      guifg=#d1117f  | ctermfg=LightMagenta|   " 字符常数: 'c'、'\n'
hi |Number         guifg=#d1117f  | ctermfg=LightCyan|  |   " 数值常数: 234、0xff
hi |Boolean        guifg=#d1117f  | ctermfg=LightCyan|  |   " 布尔型常数: TRUE、false
hi |Float          guifg=#d1117f  | ctermfg=LightCyan|  |   " 浮点常数: 2.3e10


hi |Identifier     guifg=#d1117f  | ctermfg=DarkCyan |  " 任何变量名
hi |Function       guifg=#5e45c3  | ctermfg=Blue |  " 函数名 (也包括: 类的方法名)


hi |Statement      guifg=#d1117f  | ctermfg=white|  |   " 任何语句
hi |Conditional    guifg=#d1117f  | ctermfg=LightGreen |" if、then、else、endif、switch 等
hi |Repeat         guifg=#d1117f  | ctermfg=LightGreen |" for、do、while 等
hi |Label          guifg=#d1117f  | ctermfg=LightGreen |" case、default 等
hi |Operator       guifg=#d1117f  | ctermfg=Yellow |".
hi |Keyword        guifg=#d1117f  | ctermfg=LightGreen |" 其它关键字
hi |Exception      guifg=#d1117f  | ctermfg=LightGreen |" try、catch、throw


hi |PreProc        guifg=#d1117f  | ctermfg=DarkRed |   " 通用预处理命令
hi |Include        guifg=#d1117f  | ctermfg=DarkRed |   " 预处理命令 #include
hi |Define         guifg=#d1117f  | ctermfg=DarkRed |   " 预处理命令 #define
hi |Macro          guifg=#d1117f  | ctermfg=DarkRed |   " 同 Define
hi |PreCondit      guifg=#d1117f  | ctermfg=DarkRed |   " 预处理命令 #if、#else、#endif 等


hi |Type           guifg=#d1117f  | ctermfg=DarkGreen | " int、long、char 等
hi |StorageClass   guifg=#d1117f  | ctermfg=LightGreen |" static、register、volatile 等
hi |Structure      guifg=#d1117f  | ctermfg=LightGreen |" struct、union、enum 等
hi |Typedef        guifg=#d1117f  | ctermfg=LightGreen |" typedef 定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值