您的位置:首页 > 运维架构 > Linux

VIMRC配置备份

2012-07-27 22:53 337 查看
"=========================================================================

" DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console

"

" Last Change: 2012年07月27日 22时53分

"

" Version:     1.00

"

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

set nocompatible            " 关闭 vi 兼容模式

syntax on                   " 自动语法高亮

colorscheme color           " 设定配色方案

set number                  " 显示行号

"set cursorline             " 突出显示当前行

set ruler                   " 打开状态栏标尺

set shiftwidth=4            " 设定 << 和 >> 命令移动时的宽度为 4

set softtabstop=4           " 使得按退格键时可以一次删掉 4 个空格

set tabstop=4               " 设定 tab 长度为 4

set nobackup                " 覆盖文件时不备份

set autochdir               " 自动切换当前目录为当前文件所在的目录

filetype plugin indent on   " 开启插件

set backupcopy=yes          " 设置备份时的行为为覆盖

set ignorecase smartcase    " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感

set nowrapscan              " 禁止在搜索到文件两端时重新搜索

set incsearch               " 输入搜索内容时就显示搜索结果

set hlsearch                " 搜索时高亮显示被找到的文本

set noerrorbells            " 关闭错误信息响铃

set novisualbell            " 关闭使用可视响铃代替呼叫

set t_vb=                   " 置空错误铃声的终端代码

" set showmatch             " 插入括号时,短暂地跳转到匹配的对应括号

" set matchtime=2           " 短暂跳转到匹配括号的时间

set magic                   " 设置魔术

set hidden                  " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存

set guioptions-=T           " 隐藏工具栏

set guioptions-=m           " 隐藏菜单栏

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 foldlevelstart=99       " 默认不折叠

" set foldclose=all           " 设置为自动关闭折叠                            

" return OS type, eg: windows, or linux, mac, et.st..

function! MySys()

    if has("win16") || has("win32") || has("win64") || has("win95")

        return "windows"

    elseif has("unix")

        return "linux"

    endif

endfunction

" 用户目录变量$VIMFILES

if MySys() == "windows"

    let $VIMFILES = $VIM.'/vimfiles'

elseif MySys() == "linux"

    let $VIMFILES = $HOME.'/.vim'

endif

" 设定doc文档目录

let helptags=$VIMFILES.'/doc'

" 设置字体 以及中文支持

if has("win32")

    set guifont=Inconsolata:h12:cANSI

endif

" 配置多语言环境

if has("multi_byte")

    " UTF-8 编码

    set encoding=utf-8

    set termencoding=utf-8

    set formatoptions+=mM

    set fencs=utf-8,gbk

    if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)'

        set ambiwidth=double

    endif

    if has("win32")

        source $VIMRUNTIME/delmenu.vim

        source $VIMRUNTIME/menu.vim

        language messages zh_CN.utf-8

    endif

else

    echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"

endif

"窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动

"光标到上方窗口,需要<c-w><c-w>k,非常麻烦,现在重映射为<c-k>,切换的

"时候会变得非常方便.

nnoremap <C-h> <C-w>h

nnoremap <C-j> <C-w>j

nnoremap <C-k> <C-w>k

nnoremap <C-l> <C-w>l

"-----------------------------------------------------------------

" plugin - taglist.vim  查看函数列表,需要ctags程序

" F4 打开隐藏taglist窗口

"-----------------------------------------------------------------

if MySys() == "windows"                " 设定windows系统中ctags程序的位置

    let Tlist_Ctags_Cmd = '"'.$VIMRUNTIME.'/ctags.exe"'

elseif MySys() == "linux"              " 设定windows系统中ctags程序的位置

    let Tlist_Ctags_Cmd = '/usr/bin/ctags'

endif

nnoremap <silent><F4> :TlistToggle<CR>

let Tlist_Show_One_File = 1            " 不同时显示多个文件的tag,只显示当前文件的

let Tlist_Exit_OnlyWindow = 1          " 如果taglist窗口是最后一个窗口,则退出vim

let Tlist_Use_Right_Window = 1         " 在右侧窗口中显示taglist窗口

let Tlist_File_Fold_Auto_Close=1       " 自动折叠当前非编辑文件的方法列表

let Tlist_Auto_Open = 1

let Tlist_Auto_Update = 1

let Tlist_Hightlight_Tag_On_BufEnter = 1

let Tlist_Enable_Fold_Column = 0

let Tlist_Process_File_Always = 1

let Tlist_Display_Prototype = 0

let Tlist_Compact_Format = 1

"-----------------------------------------------------------------

" plugin - DoxygenToolkit.vim  由注释生成文档,并且能够快速生成函数标准注释

"-----------------------------------------------------------------

let g:DoxygenToolkit_authorName="Asins - asinsimple AT gmail DOT com"

let g:DoxygenToolkit_briefTag_funcName="yes"

map <leader>da :DoxAuthor<CR>

map <leader>df :Dox<CR>

map <leader>db :DoxBlock<CR>
map <leader>dc a /*  */<LEFT><LEFT><LEFT>

"自动补齐括号引号等

: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

"映射光标方向

inoremap <C-h> <Left>

inoremap <C-j> <Down>

inoremap <C-k> <Up>

inoremap <C-l> <Right>

"换行                   

inoremap <C-m> <ESC>o 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息