my_vimrc

来源:互联网 发布:软件项目里程碑计划 编辑:程序博客网 时间:2024/06/08 08:50
" add by badboy 2012-1-2
if has("win32") || has("win95") || has("win64") || has("win16")
    let g:iswindows=1
else
    let g:iswindows=0
endif

if has("autocmd")
    filetype plugin indent on
endif

set nu

"set cin
set wildmenu

"光标所在行高亮
set cursorline
"set cursorcolumn

set autoindent

syntax enable
set nocompatible
set tags+=/usr/include/tags

" 不自动换行
"set nowrap

" 解决自动换行格式下, 如高度在折行之后超过窗口高度结果这一行看不到的问题
" set display=lastline
" 设定配色方案
colorscheme desert

" 搜索字符
set incsearch
" 搜索时忽略大小写,但在有一个或以上大写字母时仍大小写敏感
set ignorecase
set smartcase
" 搜索到文件两端时不重新搜索
set nowrapscan

set guifont=Monospace\ Bold\ 12
"set guifont=Bold
"set guifont=11

"setlocal tabstop=4 softtabstop=4 shiftwidth=4 expandtab
set ts=4 sts=4 expandtab
" 设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4
set list
set listchars=tab:▸\ ,eol:¬

"check file type
filetype on
"set background=dark

"智能自动缩进
set smartindent
"显示括号配对情况
set showmatch
set ruler
" 设定命令行的行数为1
set cmdheight=1
"显示状态栏(默认值为1,无法显示状态栏)
set laststatus=2
" 设置在状态行显示的信息
" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]

set foldenable
"fold code by syntax 'cmd':
"set foldmethod=manual          "手工定义折叠
"set foldmethod=indent          "更多的缩进表示更高级别的折叠
"set foldmethod=expr            "用表达式来定义折叠
set foldmethod=syntax           "用语法加亮来定义折叠
"set foldmethod=diff            "对没有更改的文本进行折叠
"set foldmethod=marker          "对文中的标志折叠
set foldcolumn=3
"set foldopen=all
"set foldclose=all
"对关闭的折叠的颜色的设定由 |hl-Folded| 决定。对折叠栏的颜色的设定由 |hl-FoldColumn| 决定。下面是设定颜色的例子:
highlight Folded guibg=grey guifg=blue
highlight FoldColumn guibg=darkgrey guifg=white
"设置显示折叠文本
set foldtext=MyFoldText()
function MyFoldText()
let line = getline(v:foldstart)
let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
return v:folddashes . sub
endfunction

"语法
set syntax=cpp

"set formatoptions=tc

"{{{plugin TagList.vim代码导航
let Tlist_Ctags_Cmd='/usr/local/bin/ctags'
"let Tlist_Use_Right_Window=1 "窗口显示在右边,0是左边
let Tlist_Show_One_File=1 "可同时展示多个文件列表,1只展示一个
let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动退出vim
let Tlist_Process_File_Always=1 "是否一直处理tags,1:处理,0:不处理
let Tlist_Inc_Winwidth=0
"let Tlist_Auto_Open=1 "vim启动自动打开taglist
"let Tlist_Close_On_Select=1 "选择tag后自动关闭taglist窗口
let Tlist_GainFocus_On_ToggleOpen=1 "打开tarlist后,焦点到taglist
map <F7> <Esc>:TlistToggle<CR>
"}}}

"{{{plugin NERDTree.vim
let NERDTreeWinPos=1
map <F3> <Esc>:NERDTree<CR>
"}}}

"{{{plugin DoxygenToolkit.vim 加注释
let g:DoxygenToolkit_briefTag_pre="@Synopsis  "
let g:DoxygenToolkit_paramTag_pre="@Param "
let g:DoxygenToolkit_returnTag="@Returns   "
let g:DoxygenToolkit_blockHeader="--------------------------------------------------------------------------"
let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------"
let g:DoxygenToolkit_authorName="Bad_boy"
let g:DoxygenToolkit_licenseTag="My own license <-- !!! Does not end with \<enter>"
"}}}

"Set mapleader
let mapleader = ","
"Fast reloading of the .vimrc
map <silent><leader>ss :source ~/.vimrc<cr>
"Fast editing of .vimrc
map <silent><leader>ee :vi ~/.vimrc<cr>
"When .vimrc is edited, reload it
autocmd! bufwritepost .vimrc source ~/.vimrc

"{{{plugin miniBufExpl
let g:miniBufExplMapWindowNavVim=1
let g:miniBufExplMapWindowNavArrows=1
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplModSelTarget=1
"}}}"
"
" add by badboy 2012-1-2
if has("win32") || has("win95") || has("win64") || has("win16")
    let g:iswindows=1
else
    let g:iswindows=0
endif
if has("autocmd")
    filetype plugin indent on
endif
set nu


"if has("gui_running")
"    set guioptions-=m " 隐藏菜单栏
"    set guioptions-=T " 隐藏工具栏
"    set guioptions-=L " 隐藏左侧滚动条
"    set guioptions-=r " 隐藏右侧滚动条
"    set guioptions-=b " 隐藏底部滚动条
"    set showtabline=1 " 隐藏Tab栏
"endif

set guioptions+=L " 隐藏左侧滚动条
set guioptions+=r " 隐藏右侧滚动条

" 不自动换行
"set nowrap

" 解决自动换行格式下, 如高度在折行之后超过窗口高度结果这一行看不到的问题
" set display=lastline
" 设定配色方案
" colorscheme molokai

" 搜索字符
set incsearch
" 搜索时忽略大小写,但在有一个或以上大写字母时仍大小写敏感
set ignorecase
set smartcase
" 搜索到文件两端时不重新搜索
set nowrapscan



"setlocal tabstop=4 softtabstop=4 shiftwidth=4 expandtab
set ts=4 sts=4 expandtab
" 设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4
set list
set listchars=tab:▸\ ,eol:¬

"check file type
filetype on
"set background=dark


"智能自动缩进
set smartindent
"显示括号配对情况
set showmatch
" 设定命令行的行数为1
set cmdheight=1
"显示状态栏(默认值为1,无法显示状态栏)
set laststatus=2
" 设置在状态行显示的信息
" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]


" 插入模式下上下左右移动光标
"inoremap <c-h> <left>
"inoremap <c-l> <right>
"inoremap <c-j> <c-o>gj
"inoremap <c-k> <c-o>gk


set foldenable
"fold code by syntax 'cmd':
"'zi' open/close all folds
"'za' open/close current fold
"'zM' close all folds
"'zR' open all folds
"当你退出文件编辑时,手工折叠会被遗弃。要保存折叠,使用 |:mkview|命令。之后要恢复可以使用 |:loadview|
"set foldmethod=manual          "手工定义折叠
"set foldmethod=indent          "更多的缩进表示更高级别的折叠
"set foldmethod=expr            "用表达式来定义折叠
set foldmethod=syntax           "用语法加亮来定义折叠
"set foldmethod=diff            "对没有更改的文本进行折叠
"set foldmethod=marker          "对文中的标志折叠
"折叠栏
set foldcolumn=3
"set foldopen=all
"set foldclose=all
"对关闭的折叠的颜色的设定由 |hl-Folded| 决定。对折叠栏的颜色的设定由 |hl-FoldColumn| 决定。下面是设定颜色的例子:
highlight Folded guibg=grey guifg=blue
highlight FoldColumn guibg=darkgrey guifg=white
"设置显示折叠文本
set foldtext=MyFoldText()
function MyFoldText()
let line = getline(v:foldstart)
let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
return v:folddashes . sub
endfunction

"语法
set syntax=cpp

"set formatoptions=tc

"add header
function MyTitle()
    call setline(1,"/*******************************************************************************")
    call append(line("."),  "Author  : Badboy")
    call append(line(".")+1,"Time    : ".strftime("%c"))
    call append(line(".")+2,"FileName: ".expand("%"))
    call append(line(".")+3,"Desc    : ")
    call append(line(".")+4,"*******************************************************************************/")
endf
map <F9> <Esc>:call MyTitle()<CR><Esc>:$<Esc>o<Esc>


"add cpp framework
function CppFramework()
     call setline(7,"#include<iostream>")
     call setline(8,"#include<stdio.h>")
     call setline(9,"#include<fstream>")
     call setline(10,"using namespace std;")
     call setline(11,"")
     call setline(12,"int main(int argc, char* argv[])")
     call setline(13,"{")
     call setline(14," return 0;")
    call setline(15,"}")
endf
map <F2> <Esc>:call CppFramework()<CR><Esc>:$<Esc>2ko


"{{{add comment
function AddComment()
    if &syntax=="cpp" || &syntax=="c"
        execute "normal \<Esc>\<S-$>a\<TAB>/* */\<Esc>2ha"
    elseif &syntax=="py"
        execute "normal \<Esc>\<S-$>a\<TAB>#\<Esc>2ha"
    elseif &syntax=="lua"
        execute "normal \<Esc>\<S-$>a\<TAB>--\<Esc>2ha"
    endif
endf
map <F4> <Esc>:call AddComment()<CR>i


function CommOneLine()
    let tmp=getline(".")
    call setline(line("."),"/*")
    call append(line("."),"".tmp." //by badboy ".strftime("%c"))
    call append(line(".")+1," */")
endf
map <F5> <Esc>:call CommOneLine()<CR><ESC>


"{{{plugin TagList.vim代码导航
let Tlist_Ctags_Cmd='/usr/local/bin/ctags'
"let Tlist_Use_Right_Window=1 "窗口显示在右边,0是左边
let Tlist_Show_One_File=0 "可同时展示多个文件列表,1只展示一个
let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动退出vim
let Tlist_Process_File_Always=1 "是否一直处理tags,1:处理,0:不处理
let Tlist_Inc_Winwidth=0
"let Tlist_Auto_Open=1 "vim启动自动打开taglist
"let Tlist_Close_On_Select=1 "选择tag后自动关闭taglist窗口
let Tlist_GainFocus_On_ToggleOpen=1 "打开tarlist后,焦点到taglist
"map <silent> <leader>tl :TlistToogle<CR>
map <F7> <Esc>:TlistToggle<CR>
"}}}


" {{{ plugin – winmove.vim 窗口移动
"let g:wm_move_left  = "<a-h>"
"let g:wm_move_right = "<a-l>"
"let g:wm_move_up    = "<a-k>"
"let g:wm_move_down  = "<a-j>"
"}}}

"Set mapleader
let mapleader = ","
"Fast reloading of the .vimrc
map <silent> <leader>ss :source ~/.vimrc<cr>
"Fast editing of .vimrc
map <silent> <leader>ee :gedit ~/.vimrc<cr>
"When .vimrc is edited, reload it
autocmd! bufwritepost .vimrc source ~/.vimrc



原创粉丝点击