天天看点

my_vimrc

" 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,"")

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("."),"")

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