自己用的vim配置
有两个文件
.vimrc (vim常用配置及快捷键配置) .vimrc.bundles (vim plugin 配置)
.vimrc 文件:
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" settings for vim
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
" This file contains some boilerplate settings for vim's cscope interface,
" plus some keyboard mappings that I've found useful.
"
" USAGE:
" -- vim 6: Stick this file in your ~/.vim/plugin directory (or in a
" 'plugin' directory in some other directory that is in your "
" 'runtimepath'. "
" Jason Duell 'yistn@163.com 2013/3/13
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""multi-encodingi setting多语言编码转换""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has("multi_byte")
"set bomb
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,gb2312,gbk,big5,euc-jp,euc-kr
set encoding=utf8
" CJK environment detection and corresponding setting
if v:lang =~ "^zh_CN"
" Use cp936 to support GBK, euc-cn == gb2312
set encoding=cp936
set termencoding=cp936
set fileencoding=cp936
elseif v:lang =~ "^zh_TW"
" cp950, big5 or euc-tw
" Are they equal to each other?
set encoding=big5
set termencoding=big5
set fileencoding=big5
elseif v:lang =~ "^ko"
" Copied from someone's dotfile, untested
set encoding=euc-kr
set termencoding=euc-kr
set fileencoding=euc-kr
elseif v:lang =~ "^ja_JP"
" Copied from someone's dotfile, untested
set encoding=euc-jp
set termencoding=euc-jp
set fileencoding=euc-jp
endif
" Detect UTF-8 locale, and replace CJK setting if needed
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with multi_byte"
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""" Initial Plugin 加载插件""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" install Vundle bundles
if filereadable(expand("~/.vimrc.bundles"))
source ~/.vimrc.bundles
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""vim 样式配置""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 基础配置设置
filetype on "检测文件类型
filetype indent on "针对不同的文件类型采用不同的缩进格式
filetype plugin on "允许插件
filetype plugin indent on "启动自动补全
"autocmd! bufwritepost _vimrc source % "vimrc文件修改之后自动加载。 windows。
"autocmd! bufwritepost .vimrc source % "vimrc文件修改之后自动加载。 linux。
syntax enable "开启代码高亮
syntax on "打开高亮
set completeopt=longest,menu "自动补全配置,让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
"set relativenumber number "相对行号,可用Ctrl+n在相对/绝对行号间切换
set cursorcolumn "突出显示当前列,可用Ctrl+m切换是否显示
"set cursorline "突出显示当前行,可用Ctrl+m切换是否显示
set history=3000 "history存储长度
set nocompatible "非兼容vi模式,避免以前版本的一些bug和局限
set nu "显示行数
set shiftwidth=4 "换行时行间交错使用4空格
set cindent shiftwidth=4 "自动缩进4空格
set tabstop=4 "让一个tab等于4个空格
set vb t_vb=
set showmatch "显示括号配对情况
set autoread "当文件在外部被改变时,Vim自动更新载入
set nowrap "设置不自动换行
set writebackup "设置无备份文件
set nobackup "取消备份。 视情况自己改
set noswapfile "关闭交换文件
set showmode "开启模式显示
set cmdheight=1 "命令部分高度为1
set shortmess=atI "启动的时候不显示那个援助索马里儿童的提示
set t_ti= t_te= "退出vim后,内容显示在终端屏幕 设置 退出vim后,内容显示在终端屏幕, 可以用于查看和复制好处:误删什么的,如果以前屏幕打开,可以找回
" 去掉输入错误的提示声音
set title "change the terminal's title
set novisualbell "don't beep
set noerrorbells "don't beep
set t_vb=
set tm=500
"set backup "备份
"set backupext=.bak
"set backupdir=/tmp/vimbk/
set mat=4 "Blink times every second when matching brackets
set hidden "A buffer becomes hidden when it is abandoned
set wildmode=list:longest
set ttyfast
set wildignore=*.swp,*.bak,*.pyc,*.class
set scrolloff=3 "至少有3行在光标所在行上下
set selection=old
set selectmode=mouse,key
set viminfo^=% "Remember info about open buffers on close
set viminfo+=! " 保存全局变量
set magic "正则表达式匹配形式
set backspace=eol,start,indent "Configure backspace so it acts as it should act
"set backspace=indent,eol,start whichwrap+=<,>,[,] "允许退格键的使用
"set iskeyword+=_,$,@,%,#,- "带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,# "带有如下符号的单词不要被换行分割
" 字符间插入的像素行数目
au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} set filetype=mkd "markdown配置
"set go= "不要图形按钮
set cul "高亮光标所在行
autocmd InsertEnter * se cul "用浅色高亮当前行
set ruler "显示标尺
set showcmd "输入的命令显示出来,看的清楚些
" Set extra options when running in GUI mode
if has("gui_running")
set guifont=Monaco:h14
set guioptions-=T
set guioptions+=e
set guioptions-=r
set guioptions-=L
set guitablabel=%M\ %t
set showtabline=1
set linespace=4
set noimd
set t_Co=256
else
"set guifont=Courier_New:h10:cANSI " 设置字体
set guifont=Fixedsys:h12:cANSI" 设置字体
endif
"设置标记一列的背景颜色和数字一行颜色一致
hi! link SignColumn LineNr
hi! link ShowMarksHLl DiffAdd
hi! link ShowMarksHLu DiffChange
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容
set statusline+=%f "不显示工具条
ret laststatus=2 "启动显示状态行(1),总是显示状态行(2)
" max memory (in KiB) used for pattern matching
"set maxmempattern=100
"set foldenable "允许折叠
"set foldmethod=manual "手动折叠
" 选中模式 Ctrl+c 复制选中的文本
"vnoremap <c-c> "+y
" 普通模式下 Ctrl+c 复制文件路径
"nnoremap <c-c> :let @+ = expand('%:p')<cr>
" Shift + Insert 插入系统剪切板中的内容
"noremap <S-Insert> "+p
"vnoremap <S-Insert> d"+P
"inoremap <S-Insert> <esc>"+pa
"inoremap <C-S-Insert> <esc>pa
"set ignorecase