`
duoerbasilu
  • 浏览: 1482001 次
文章分类
社区版块
存档分类
最新评论

第二个项目开始了.发一下我的VIM配置,各种插件,各种补全

 
阅读更多
set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

if has("gui_running")
"设置编码格式&帮助语言
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set helplang=cn,en

"解决菜单乱码
set langmenu=chinese
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
endif

"字体设置
set guifont=Dejavu_Sans_Mono:h14:cANSI
"set gfn=YaHei\ Consolas\ Hybrid:h10
"set gfn=YaHei\ Consolas\ Hybrid:h11
"set guifontwide=YaHei\ Consolas\ Hybrid:h11
" set guifont=Courier_New:h11
" set guifontwide=YaHei\ Consolas\ Hybrid:h11

"if has("win32")
"set guifont=Courier_New:h12:cANSI
"set guifontwide=YouYuan:h12:cGB2312
"au GUIEnter * simalt ~x
"elseif has("mac") || has("macunix")
" set guifont=Courier:h14
" set guifontwide=Hei_Regular:h14
" colorscheme tabula
"else
" set guifont=
" set guifontwide=
"endif

"设置窗口的起始位置和大小
winpos 300 200
"winpos 250 200
"set lines=22
set lines=30
set columns=100
"gvim启动最大化
"autocmd GUIEnter * simalt ~x

"Terminal(win下的终端)
if(has("win32") || has("win95") || has("win64") || has("win16"))
map <C-B> :!cmd <CR>
else
map <C-B> :!bash <CR>
endif

"colorscheme Murphy "配色方案
colorscheme desert
"colorscheme inkpot
"colorscheme ir_black
"colorscheme koehler
"colorscheme wombat256
"set shortmess=atI "启动的时候不显示那个援助索马里儿童的提示
"hi Comment ctermfg=DarkCyan "修改默认注释颜色
syntax on "语法高亮
filetype on "侦测文件类型
filetype plugin on "载入文件类型插件
filetype indent on "为特定文件类型载入相关缩进文件
set showmatch "高亮显示匹配的括号
set matchtime=2 "匹配括号高亮的时间(单位是十分之一秒)
set cmdheight=1 "命令行(在状态行下)的高度,默认为1,
set noexpandtab "不要用空格代替制表符
set smarttab "在行和段开始处使用制表符
set wrap "自动换行显示
set number "显示行号儿
set report=0 "通过使用: commands命令,告诉我们文件的哪一行被改变过
set viminfo+=! "保存全局变量
set iskeyword+=_,$,@,%,#,- "带有如下符号的单词不要被换行分割
set backspace=2 "使回格键(backspace)正常处理indent, eol, start等
set whichwrap+=<,>,h,l "允许backspace和光标键跨越行边界
set linespace=1 "字符间插入的像素行数目
set wildmenu "增强模式中的命令行自动完成操作
set nolinebreak "不在单词中间断行
set showcmd "在状态栏显示目前所执行的指令,未完成的指令片段亦会显示出来
set backspace=indent,eol,start "在insert模式下能用删除键进行删除
set completeopt=longest,menu "关掉智能补全时的预览窗口,这样可以防止闪屏现象
set textwidth=120 "设置最大列数,超出后自动换行
set history=400 "历史记录数
set autoread "当文件在外部被修改,自动更新该文件
set gdefault "行内替换
set clipboard+=unnamed "与windows共享剪贴板
set tabpagemax=40

"自动缩进
set autoindent " 继承前一行的缩进方式,特别适用于多行注释
set cindent " 使用C样式的缩进
set smartindent "为C程序提供自动缩进
set expandtab
set foldmethod=marker

"Tab键的宽度
set tabstop=4

"统一缩进为4
set softtabstop=4
set shiftwidth=4

"关闭备份
set nobackup
set nowritebackup
set noswapfile

"搜索忽略大小写
set ignorecase

"搜索逐字符高亮
set hlsearch
set incsearch

"设置语法折叠



set foldenable " 开始折叠

set foldmethod=syntax " 设置语法折叠
"set foldmethod=indent " 根据缩进折叠

set foldcolumn=0 " 设置折叠区域的宽度

setlocal foldlevel=1 " 设置折叠层数为

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

"打开文件是默认不折叠代码
set foldlevelstart=99

"用空格键来开关折叠
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

"设定文件浏览器目录为当前目录
set bsdir=buffer
set autochdir

"读文件时自动设定当前目录为刚读入文件所在的目录
autocmd BufReadPost * cd %:p:h

"不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide

"先尝试windows格式,再尝试unix格式,然后尝试mac格式
set fileformats=dos,unix,mac

"开启底部滚动条
"set guioptions+=b

"Set magic on
set magic

"当有错误时不发出声音
set flash
set noerrorbells
set novisualbell
set t_vb=

"使得注释换行时自动加上前导的空格和星号
set formatoptions=tcqro

"在被分割的窗口间显示空白,便于阅读
"set fillchars=vert:\ ,stl:\ ,stlnc:\

"光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3

"可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key


"关掉智能补全时的预览窗口
set completeopt=longest,menu



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"快捷键map
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"设置控制键为,逗号
let mapleader = ","
let g:mapleader = ","
"noremap <space> :
",/ 注释当前行
noremap <leader>/ ^i//
inoremap <leader>w <ESC>:w<CR>
inoremap <leader>q <ESC>:q<CR>
noremap <leader>w :w<CR>
noremap <leader>q :q<CR>
"按jj保存退出编辑模式"
inoremap jj <ESC>:w<CR>
cnoremap jj <ESC>
"Alt+h,j,k,l 不退出编辑模式移动光标
inoremap <A-h> <Left>
inoremap <A-j> <Down>
inoremap <A-k> <Up>
inoremap <A-l> <Right>

"打开tlist"
noremap <leader>t :TlistToggle<CR>
"切换tlist与输入界面
noremap <leader>w <C-w>w

"切换到下一个标签页
noremap <leader>n :tabnext<CR>
"切换上一个标签页"
noremap <leader>b :tabprev<CR>
"打开文件在显示页显示"
noremap <leader>o :browse tabnew<CR>


"tab键缩进



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"php代码补全
"""""""""""""""""""""""""""""""""""""""""""""""""
au FileType php call PHPFuncList()
function PHPFuncList()
set dictionary-=$VIM/vimfiles/doc/php_funclist.txt
set dictionary+=$VIM/vimfiles/doc/php_funclist.txt
set complete-=k complete+=k
endfunction

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"标签
":tabnew 新建标签页
":tabs 显示已打开标签页的列表
":tabc 关闭当前标签页
":tabn 移动到下一个标签页
":tabp 移动到上一个标签页
":tabfirst 移动到第一个标签页
":tablast 移动到最后一个标签页
":tabm 1 移动标签到指定位置 从0开始计
":tabr 切换到第一个标签
":tabl 切换到最后一个标签
":tabo 关闭所有其他的tab
set showtabline=2 "始终显示标签页
set tabpagemax=15 "最大显示数
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""




" NERDTree的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
",m快捷键
noremap <leader>m :NERDTreeToggle<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"始终显示菜单
"let NERDTreeChDirMode=2
" 如果用t T i 打开文件后自动退出NERDTree,
let NERDTreeQuitOnOpen = 1
let NERDTreeHighlightCursorline=1 "高亮NERDTrre窗口的当前行
let NERDTreeSortOrder=['//$','/.cpp$','/.c$','/.h$', '*'] "排序
" 总是显示Bookmark
let NERDTreeShowBookmarks = 1
" 总是显示行号
"let NERDTreeShowLineNumbers=1
" NERDTree 窗口大小
let NERDTreeWinSize = 20
" A 可使NERDTree窗口最大化Toggle it.
"过滤文件,使用正则表达式
let NERDTreeIgnore=['\.pdf$','\.doc','\.wmv','\.flv']
let NERDTreeShowHidden=0 "不显示隐藏文件(好像只在linux环境中有效)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"状态栏显示"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set laststatus=2 " always show the status line
set wildmenu
set wildmode=list:longest,full
" ignore these list file extensions
set wildignore=*.dll,*.o,*.obj,*.exe,*.pyc,\*.jpg,*.gif,*.png,*.pdf

"我的状态行显示的内容(包括文件类型和解码)
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"状态栏设置:文件路径、文件名、标记、文件类型、字符编码、文件格式、当前位置、当前字符位置、文件总行数、日期、星期
set statusline=%F\ %h%1*%m%r%w%0*[%{strlen(&filetype)?&filetype:'none'},%{&encoding},%{&fileformat}]%=%-14.(%l,%c%V%)\ %<%p%%\ \ \ [%L]\ \ \ %{strftime('%Y-%m-%d\ -\ %H:%M\ %A')}


"在编辑过程中,在右下角显示光标位置的状态行
set ruler
set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)

"高亮鼠标位置
if has("gui_running")
"cursorline highlight(高亮当前行)
set cursorline
hi CursorLine guibg=#666666
hi CursorColumn guibg=#333333
"cursorcolumn highlight(高亮当前列)
"set cursorcolumn
"highlight CursorLine cterm=none ctermbg=2 ctermfg=0
endif

"进入插入模式时改变状态栏颜色(仅限于Vim 7)

if version >= 700
au InsertEnter * hi StatusLine guibg=#818D29 guifg=#FCFCFC gui=none
au InsertLeave * hi StatusLine guibg=#EEEEEE guifg=#363636 gui=none
endif





"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"F2 显示菜单栏,默认不显示,
"Toggle Menu and Toolbar
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set guioptions-=m
set guioptions-=T
map <silent> <F2> :if &guioptions =~# 'T' <Bar>
\set guioptions-=T <Bar>
\set guioptions-=m <bar>
\else <Bar>
\set guioptions+=T <Bar>
\set guioptions+=m <Bar>
\endif<CR>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"打开窗口最大化
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has('win32')
au GUIEnter * simalt ~x
else
au GUIEnter * call MaximizeWindow()
endif

function! MaximizeWindow()
silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
endfunction


"================================tlist
set tags=tags;
set autochdir

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 按照名称排序
let Tlist_Sort_Type = "name"
" 在右侧显示窗口
let Tlist_Use_Right_Window = 1
" 压缩方式 Remove extra information and blank lines from the taglist window.
let Tlist_Compact_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exit_OnlyWindow = 1
"auto open Tlist when vim open
let Tlist_Auto_Open = 0
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0
" taglist 窗口宽度
let Tlist_WinWidth = 22
" no inc the width of the windows
let Tlist_Inc_Winwidth = 1
" Close tag folds for inactive buffers.
let Tlist_File_Fold_Auto_Close = 1
"To process files even when the taglist window is not open.
let Tlist_Process_File_Always = 1
"display the tags defined only in the current buffer
let Tlist_Show_One_File = 1


要用的同学把VIM解压,覆盖你的vim目录下的同名文件, 看一下vimrc配置文件中的快捷键部分, 学点快捷键,不习惯的可以改成自己的
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"快捷键map
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

jj 返回命令模式
Alt + h 光标左移
Alt + l 光标右移

,/ 注释当前行
,w 保存
,q 退出
,m 打开nerdtree 菜单
,t 打开tlist菜单
,w "切换tlist与输入界面
,o 打开新文件
,n "切换到下一个标签页
,b "切换上一个标签页"

<F2> 显示菜单栏

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics