天天看点

我的_vimrc

以前用的_my_vimrc

"设置默认主题色20110708

colorscheme murphy

set nobackup

"设置vim IDE 20110902

if(has("win32") || has("win95") || has("win64") || has("win16")) "判定当前操作系统类型

    let g:iswindows=1

else

    let g:iswindows=0

endif

set nocompatible "不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题

syntax on"打开高亮

if has("autocmd")

    filetype plugin indent on "根据文件进行缩进

    augroup vimrcEx

        au!

        autocmd FileType text setlocal textwidth=78

        autocmd BufReadPost *

                    \ if line("'\"") > 1 && line("'\"") <= line("$") |

                    \ exe "normal! g`\"" |

                    \ endif

    augroup END

else

    "智能缩进,相应的有cindent,官方说autoindent可以支持各种文件的缩进,但是效果会比只支持C/C++的cindent效果会差一点,但笔者并没有看出来

    set autoindent " always set autoindenting on 

endif " has("autocmd")

set tabstop=4 "让一个tab等于4个空格

set vb t_vb=

set nowrap "不自动换行

set hlsearch "高亮显示结果

set incsearch "在输入要搜索的文字时,vim会实时匹配

set backspace=indent,eol,start whichwrap+=<,>,[,] "允许退格键的使用

if(g:iswindows==1) "允许鼠标的使用

    "防止linux终端下无法拷贝

    if has('mouse')

        set mouse=a

    endif

    au GUIEnter * simalt ~x

endif

"字体的设置

set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI "记住空格用下划线代替哦

set gfw=幼圆:h11:cGB2312 

set fileencodings=utf-8,gb2312,gbk,gb18030

"cpp Program 

map <F12> :call Do_CsTag()<CR>

nmap <[email protected]>s :cs find s <C-R>=expand("<cword>")<CR><CR>:copen<CR>

nmap <[email protected]>g :cs find g <C-R>=expand("<cword>")<CR><CR>

nmap <[email protected]>c :cs find c <C-R>=expand("<cword>")<CR><CR>:copen<CR>

nmap <[email protected]>t :cs find t <C-R>=expand("<cword>")<CR><CR>:copen<CR>

nmap <[email protected]>e :cs find e <C-R>=expand("<cword>")<CR><CR>:copen<CR>

nmap <[email protected]>f :cs find f <C-R>=expand("<cfile>")<CR><CR>:copen<CR>

nmap <[email protected]>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>:copen<CR>

nmap <[email protected]>d :cs find d <C-R>=expand("<cword>")<CR><CR>:copen<CR>

function Do_CsTag()

    let dir = getcwd()

    if filereadable("tags")

        if(g:iswindows==1)

            let tagsdeleted=delete(dir."\\"."tags")

        else

            let tagsdeleted=delete("./"."tags")

        endif

        if(tagsdeleted!=0)

            echohl WarningMsg | echo "Fail to do tags! I cannot delete the tags" | echohl None

            return

        endif

    endif

    if has("cscope")

        silent! execute "cs kill -1"

    endif

    if filereadable("cscope.files")

        if(g:iswindows==1)

            let csfilesdeleted=delete(dir."\\"."cscope.files")

        else

            let csfilesdeleted=delete("./"."cscope.files")

        endif

        if(csfilesdeleted!=0)

            echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.files" | echohl None

            return

        endif

    endif

    if filereadable("cscope.out")

        if(g:iswindows==1)

            let csoutdeleted=delete(dir."\\"."cscope.out")

        else

            let csoutdeleted=delete("./"."cscope.out")

        endif

        if(csoutdeleted!=0)

            echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.out" | echohl None

            return

        endif

    endif

    if(executable('ctags'))

        "silent! execute "!ctags -R --c-types=+p --fields=+S *"

        silent! execute "!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ."

    endif

    if(executable('cscope') && has("cscope") )

        if(g:iswindows!=1)

            silent! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.java' -o -name '*.cs' > cscope.files"

        else

            silent! execute "!dir /s/b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files"

        endif

        silent! execute "!cscope -b"

        execute "normal :"

        if filereadable("cscope.out")

            execute "cs add cscope.out"

        endif

    endif

endfunction 

"进行Tlist的设置

"TlistUpdate可以更新tags

map <F4> :silent! NERDTree<CR> "呼出NerdTree

map <F3> :silent! Tlist<CR> "按下F3就可以呼出了

let Tlist_Ctags_Cmd='ctags' "因为我们放在环境变量里,所以可以直接执行

let Tlist_Use_Right_Window=1 "让窗口显示在右边,0的话就是显示在左边

let Tlist_Show_One_File=0 "让taglist可以同时展示多个文件的函数列表,如果想只有1个,设置为1

let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏

let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim

"是否一直处理tags.1:处理;0:不处理

let Tlist_Process_File_Always=0 "不是一直实时更新tags,因为没有必要

let Tlist_Inc_Winwidth=0 

"设置mapleader键

let mapleader = ','

filetype plugin on