windows下的VIM php IDE设置.(附上了windows和linux下两个不同的vimrc配置)

windows配置了一份PHP的windows VIM IDE.

说明一下,如果某段报错,前面加" 注释掉它就可以了.vms备份必须要放到最后,如果if vms那个语句之后还有另外的source vim.比如下面的sample.vim,会导致这段失效.

有的朋友粘贴后用vim打开是乱码.解决办法

说一下粘贴的方法,windows的vim文件,请直接把下面windows vim里面前4段粘进去,然后退出_vimrc,再次打开,然后全选后删除,再把整段代码复制粘贴进去.(这样_vimrc的配置文件就不会是乱码了.要先用_vimrc里面的编码部分设置下环境编码,vim内部编码等,给它一个初始化)

"""""""说明,这个php的环境配置了大部分常见的标签,窗口.具体效果图如下,没有配置补全代码"""""""""


/*********plugins download address**************/

下载不管是tag.gz还是.rar /.zip或者是直接的.vim 都会用上

(1)txt.vim  "高亮显示普通txt文件,加入plugin里 %/vim73/plugin

http://www.vim.org/scripts/script.php?script_id=1532

au BufRead,BufNewFile * setfiletype txt

(2)ctags windows版 直接复制ctags.exe到/vim73下
http://sourceforge.net/projects/ctags/files/ctags/5.8/ctags58.zip/download

set tags=tags; 

"这里tags="后面可以跟上路径比如我的F:/php/www/tags; 然后在vim里面:!ctags -R 编译www下的ctags文件.建议移走不相关的代码,只保留项目源码

 set autochdir 

linux 下直接把ctags-5.8这个tar.gz文件 tar -zxvf 解压了.然后进去 ./configure make &&make install

(3)taglist_45.zip 解压后得到doc和plugin文件夹,复制到/vim73下就行了 下面.vimrc定义了F9呼出

http://www.vim.org/scripts/script.php?script_id=273

let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1

(4)winmanager.zip  同上 wm呼出

http://www.vim.org/scripts/script.php?script_id=95

let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>

(5)minibufexpl.vim多文件编辑 加入到plugin里

ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;
ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;
ctrl+箭头键,可以切换到上下左右窗口中;
ctrl+h,j,k,l,切换到上下左右的窗口中。 

http://www.vim.org/scripts/script.php?script_id=159

let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1

(6)grep.vim 工程中快速查找 F3呼出 这个查找的文件如果是汉字就会有乱码,还没找到解决办法

http://www.vim.org/scripts/script.php?script_id=311

nnoremap <silent> <F3> :Grep<CR>

(7)NERD_tree  F10呼出

http://www.vim.org/scripts/script.php?script_id=1658
map <F10> :NERDTreeToggle<CR>

(8) 中文vim帮助文档安装版

http://sourceforge.net/projects/vimcdoc/files/win32-install/1.8.0/vimcdoc-1.8.0-setup.exe/download

(9)php语法增强 assistant : Show the prototype of function(PHP/Vim/...)  这个我没用

http://www.vim.org/scripts/script.php?script_id=2805 

(10)php.vim

http://www.vim.org/scripts/script.php?script_id=1571

(11) snipMate 安装. 

http://www.vim.org/scripts/script.php%3Fscript_id%3D2540

在win下,把snipmate解压后,所有的文件包放到/vim73/vimfiles/ 里面,就行了.需要开起" 载入文件类型插件"  用法就是输入关键词 +tab 自动填充代码段

snipMate的帮助菜单添加, 在windows下,打开vim 输入 

:helptags $VIM/vimfiles/doc

来生成帮助文件的tags,接着要查看帮助直接

:help snipMate

即可 linux下使用 :helptags ~/.vim/doc

(12) zen coding

http://www.vim.org/scripts/script.php?script_id=2981
windows下直接解压后全部放进/vimfiles  linux同11的snipmate一样,放到$~/.vim 里面

(13) phpqa 

https://github.com/joonty/vim-phpqa 

windows下直接解压后全部放进/vimfiles  linux同11的snipmate一样,放到$~/.vim 里面 .需要php code sniffer 和php  mess dector 支持

let g:phpqa_codesniffer_args = "--standard=Zend"
let g:phpqa_codesniffer_cmd  = '/usr/bin/phpcs'
let g:phpqa_codesniffer_autorun = 0        "  default =1 on save
let g:phpqa_messdetector_ruleset = ''
let g:phpqa_messdetector_cmd = '/usr/bin/phpmd'
let g:phpqa_messdetector_autorun = 0

要声明相关xml 参考这里http://coreymaynard.com/blog/finding-what-stinks-and-cleaning-up-the-mess/

(14)auto complpop 自动弹出提示插件

http://www.vim.org/scripts/script.php?script_id=1879

下载后直接放在全部放进vim7x 里面就可以了

下面红星里面的内容保存成.vimrc 把上面的插件都下下来放入对应的doc vim73 plugin下,就可以用了

(15)surround.vim 快速修改标签. 这个可以直接cs"' 修改一对双引号为一对单引号,也可以修改成自己想要的.

http://www.vim.org/scripts/script.php?script_id=1697

下载后放到主vim73 里面去就可以了

(16) CtrlP.vim 在当前路径下快速查找工程文件. 

http://kien.github.io/ctrlp.vim/

let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
set wildignore+=*/tmp/*,*.so,*.swp,*.zip   " Linux/MacOSX
"set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe" Windows
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn|rvm)$'
let g:ctrlp_working_path_mode=0
let g:ctrlp_match_window_bottom=1
let g:ctrlp_max_height=15
let g:ctrlp_match_window_reversed=0
let g:ctrlp_mruf_max=500
let g:ctrlp_follow_symlinks=1
let g:ctrlp_user_command = {
\ 'types': {
\ 1: ['.git', 'cd %s && git ls-files'],
\ 2: ['.hg', 'hg --cwd %s locate -I .'],
\ },
\ 'fallback': 'find %s -type f'
\ }

(17) EasyGrep.vim 和mru.vim 一个是快速查找内容, 一个是查看之前打开的文件记录.

http://www.vim.org/scripts/script.php?script_id=2438

http://www.vim.org/scripts/script.php?script_id=521

"let MRU_File = 'd:\myhome\_vim_mru_files' " 指定缓存地址.
let MRU_Max_Entries = 1000
let MRU_Exclude_Files = '^/tmp/.*\|^/var/tmp/.*'  " For Unix  /windows '^c:\\temp\\.*'
" let MRU_Include_Files = '\.c$\|\.h$'     " 指定类型的最近打开
let MRU_Add_Menu = 1                       " 增加到菜单.
let MRU_Max_Menu_Entries = 20 
let MRU_Max_Submenu_Entries = 15 



/*******************windows .vimrc configure start*********************/

""""""""""""""""""""1.system configure""""""""""""

" 帮助菜单
set helplang=cn

" 设置history文件记录的行数
set history=1000

" 处理为保存或只读文件的时候弹出确定comfirm
set confirm

" 检测文件的类型
filetype on

" 载入文件类型插件
filetype plugin on

" 可读二进制文件
set binary

" 为特定文件类型载入相关缩进文件
filetype indent on
filetype plugin indent on

"不同文件类型的缩进
au FileType html,python,vim,javascript setl shiftwidth=4
au FileType html,python,vim,javascript setl tabstop=4
au FileType java,php setl shiftwidth=4
au FileType java,php setl tabstop=4
set completeopt=longest,menu

""""""""""""""""""2.text pattern"""""""""""""""""""""""""""

" 自动格式化
set formatoptions=tcrqn

" 开始折叠
set foldenable

" 设置语法折叠
set foldmethod=syntax

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

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

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

""""""""""""""""""""3.encoding file configure""""""""""""""
" vim 支持中文
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
set ambiwidth=double

" 解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

" 与windows共享剪贴板share clipboard with windows
"set clipboard+=unnamed

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

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

" 字符间插入的像素行数目
set linespace=0

" 增强模式中的命令行自动完成操作
set wildmenu

" 保存全局变量
set viminfo+=!

" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-

""""""""""""""""""""4.display"""""""""""""""""""""""

" 设置配色方案
colorscheme desert
" No mouseflash
set novisualbell

" 设置行号
set nu

" 设置语法高亮
syntax enable
syntax on

" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
:match OverLength '\%101v.*'

" 高亮显示普通txt文件(需要txt.vim脚本)
au BufRead,BufNewFile * setfiletype txt

" 去除vim的GUI版本中的toolbar
"set guioptions-=T

" 在编辑过程中,在右下角显示光标位置
set ruler

" 总是显示状态栏 show the status line 默认1无法显示
set laststatus=2

" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}

" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White

" 在状态行上显示光标所在位置的行号和列号
set ruler
set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)

" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2

" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0

" 自动换行
set wrap

" 整词换行
set linebreak

" 自动对齐,继承前一行的缩进方式,特别适用于多行注释
set autoindent

" 智能对齐
set smartindent

" 设置自动缩进
set ai!

" 使用c样式的缩进
set cindent

" 设置tab为4个空格
set tabstop=4

" 不要用空格来代替制表符tab
set noexpandtab

" 可以使用backspace键
set backspace=2

" 允许backspace和光标键跨越行边界
set whichwrap+=<,>h,l

" 设置行间交错为4个空格
set shiftwidth=4

" 统一缩进为4个空格
set softtabstop=4

" 在行和段开始处使用制表符
set smarttab

" 启动的时候不显示援助索马里儿童提示
set shortmess=atI

" 不让vim发出讨厌的滴滴声
set noerrorbells

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

"启动后自动最大化 
if has("win32")
    au GUIEnter * simalt ~x
endif

""""""""""""""""""""5.search match""""""""""""""""""
" 高亮显示匹配的括号
set showmatch

" 高亮显示当前行
set cursorline

" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5

" 在搜索的时候忽略大小写
set ignorecase

" 高亮被搜索的句子(phrases)
set hlsearch

" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch

" 输入:set list命令显示内容
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$

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

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

""""""""""""""""""""6.plugins"""""""""""""""""""""""
" CTags的设定(地址自定义,我的www在F:/php/www下)
" 在vim里面:!ctags -R重新编译ctags文件
set tags=F:/php/www/tags;
"set tags=tags; 
set autochdir 

" 设置Tlist F9开关 按wm会启动.F9是单独开关
map <F9> :TlistToggle<cr>
" 按照名称排序
let Tlist_Sort_Type = "name"
let Tlist_Show_One_File=1
" 在右侧显示窗口
let Tlist_Use_Right_Window = 0
" 压缩方式
let Tlist_Compart_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow = 1
" 不要关闭其他文件的tags
let Tlist_File_Fold_Auto_Close = 0
let Tlist_Exit_OnlyWindow=1
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0
" php的折叠
let Tlist_php_settings = 'php;c:class;i:interfaces;d:constant;f:function'

" 设置netrw.vim插件 wm 开启
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>

" 设置多文件编辑minibufexpl.vim
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
let g:miniBufExplModSelTarget = 1

" 设置grep.vim在工程中快速查找 F3
nnoremap <silent> <F3> :Grep<CR>

" 支持NERDTree插件F10开启list.tree
" NERDTree
map <F10> :NERDTreeToggle<CR>

" PHP 语法检查 F5
map <F5> :!/usr/local/php/bin/php -l %<CR>

" php高亮highlight
source $VIMRUNTIME/syntax/php.vim

" php缩进
let PHP_autoformatcomment=1

" php自动补全  Ctrl-x Ctrl-o 
" css - html 补全
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
" js自动补全
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
" php - mysql自动补全  Ctrl-x Ctrl-o 
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType mysql set omnifunc=mysqlcomplete#CompleteMYSQL

" colorv.vim 在vim打开颜色版的插件,非常好用.

http://www.vim.org/scripts/script.php?script_id=3597

https://github.com/Rykka/colorv.vim

"""""""""""""""""""7.original _vimrc""""""""""""""""

" 不使用与vi兼容的键盘模式
set nocompatible
"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("vms")
set nobackup
"else
"set backup
endif


" 自己加载_vimrc文件.无需重启
" autoload _vimrc
autocmd! bufwritepost _vimrc source %

"""""""""""""""""""""8.简易帮助 simple helpdoc"""""""""""""""""""""""""
" 打开文件后每行末尾出现^M 消除的办法是:%s/^M//g (:%S/<ctrl+v><enter>//g<enter>) 

"""""""""""""""""""""9.符号自动补齐"""""""""""""""""""""""""""""""""""""""""""

: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
:inoremap ` ``<ESC>i
function ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
    else
        return a:char
    endif
endf

"""""""""""""""""""""10.窗口最大化"""""""""""""""""""""""""""""""""""""""""""

if has("gui_running")
    au GUIEnter * simalt ~x  " 窗口启动时自动最大化
    "set guioptions-=m       " 隐藏菜单栏
    "set guioptions-=T     " 隐藏工具栏
    "set guioptions-=L       " 隐藏左侧滚动条
    "set guioptions-=r       " 隐藏右侧滚动条
    "set guioptions-=b       " 隐藏底部滚动条
    "set showtabline=0       " 隐藏Tab栏
endif

/*********************windows .vimrc configureends***********************/


/**********************原始的windows .vimrc文件**********************/

set nocompatible
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

/************************original .vimrc configure***********************/

Linux vimrc


/**********************linux vimrc configure start***************************/

"""""""""""""""""""1.system configure"""""""""""""""""""""""
"  帮助菜单helpmenu
set helplang=cn


" 设置history文件记录的行数
set history=1000


" 在处理未保存或只读文件的时候,弹出确认
set confirm


" 侦测文件类型detect filetype
filetype on


" 载入文件类型插件load filetype plugin
filetype plugin on


" 可读二进制文件read binary
set binary


" 为特定文件类型载入相关缩进文件
filetype indent on
filetype plugin indent on




"不同文件类型的缩进different typefile opt
au FileType html,python,vim,javascript setl shiftwidth=4
au FileType html,python,vim,javascript setl tabstop=4
au FileType java,php setl shiftwidth=4
au FileType java,php setl tabstop=4
set completeopt=longest,menu
"""""""""""""""""""2.text pattern"""""""""""""""""""""""""""
" 自动格式化 autoformat
set formatoptions=tcrqn


" 开始折叠folden
set foldenable


" 设置语法折叠syntax folden
set foldmethod=syntax


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


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


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


"""""""""""""""""""3.encoding file configure""""""""""""""""
" set default coding
set encoding=utf-8
set termencoding=utf-8
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
set fileencodings=utf-8,chinese,latin-1


if has("win32")
set fileencoding=chinese
else
set fileencoding=utf-8
endif
" Console output coding
set langmenu=zh-CN.utf-8


" Menu coding
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim


" disable VI´s compatibal mode不要使用vi的键盘模式,而是vim自己的
set nocompatible


" 与windows共享剪贴板
set clipboard+=unnamed


" autobackup
"if has("vms")
set nobackup
"else
"set backup
"endif
" 设置备份时的行为为覆盖autobackup cover
set backupcopy=yes


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


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


" 字符间插入的像素行数目
set linespace=0


" 增强模式中的命令行自动完成操作
set wildmenu


" 保存全局变量
set viminfo+=!
set viminfo='1000,f1,<500


" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-


"""""""""""""""""""""""4.display"""""""""""""""""""""""""""
" set colortheme
colorscheme desert


" no mouse flash
set novisualbell


" set number设置行号
set nu


" 语法高亮
syntax enable
syntax on


" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
:match OverLength '\%101v.*'


" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White


" 高亮显示普通txt文件(需要txt.vim脚本)
au BufRead,BufNewFile * setfiletype txt
set syntax=txt


" 去除vim的GUI版本中的toolbar
"set guioptions-=T


" 总是显示状态栏 show the status line 默认1无法显示
set laststatus=2


" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}


" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White


" 在状态行上显示光标所在位置的行号和列号
set ruler
set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)


" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2


" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0


" 自动换行
set wrap


" 整词换行
set linebreak


" 自动对齐,继承前一行的缩进方式,特别适用于多行注释
set autoindent


" 智能对齐
set smartindent


" 设置自动缩进
set ai!


" 使用c样式的缩进
set cindent


" 设置tab为4个空格
set tabstop=4


" 不要用空格来代替制表符tab
set noexpandtab


" 可以使用backspace键
set backspace=2


" 允许backspace和光标键跨越行边界
set whichwrap+=<,>h,l


" 设置行间交错为4个空格
set shiftwidth=4


" 统一缩进为4个空格
set softtabstop=4


" 在行和段开始处使用制表符
set smarttab


" 启动的时候不显示援助索马里儿童提示
set shortmess=atI


" 不让vim发出讨厌的滴滴声
set noerrorbells


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


"启动后自动最大化 
if has("win32")
    au GUIEnter * simalt ~x
endif


"""""""""""""""""""""""5.search match""""""""""""""""""""""
" 设置快捷键
" 插入邮箱<ctrl+E>
map irainysia@gmail.com
" 邮箱自动替换
ab mymail rainysia@gmail.com
" 账户自动替换
ab rainy rainysia
" 清除格式 command cmode:$s/
//g
set fileformat=unix


" 高亮显示匹配的括号
set showmatch


" 高亮显示当前行
set cursorline


" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5


" 在搜索的时候忽略大小写
set ignorecase


" 高亮被搜索的句子(phrases)
set hlsearch


" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch


" 输入:set list命令显示内容
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$


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


" 禁止搜索到文件两端时重新搜索
set nowrapscan  
"""""""""""""""""""""""6.plugins"""""""""""""""""""""""""""


" CTags的设定(地址自定义,我的www在var/www下)
set tags=/var/www/tags
set autochdir


" 设置Tlist F9开关 按wm会启动.F9是单独开关
map <F9> :TlistToggle<cr>
" 按照名称排序
let Tlist_Sort_Type = "name"
let Tlist_Show_One_File=1
" 在右侧显示窗口
let Tlist_Use_Right_Window = 0
" 压缩方式
let Tlist_Compart_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow = 1
" 不要关闭其他文件的tags
let Tlist_File_Fold_Auto_Close = 0
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0 
" php的折叠
let Tlist_php_settings = 'php;c:class;i:interfaces;d:constant;f:function'


" 设置netrw.vim插件 wm开启


let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>




" 设置多文件编辑minibufexpl.vim
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
let g:miniBufExplModSelTarget = 1


" 设置grep.vim在工程中快速查找 F3
nnoremap <silent> <F3> :Grep<CR>


" 支持NERDTree插件F10开启list.tree
" NERDTree
map <F10> :NERDTreeToggle<CR>




" PHP 语法检查 F5
map <F5> :!/usr/local/php/bin/php -l %<CR>


" php高亮highlight
source $VIMRUNTIME/syntax/php.vim


" php缩进
let PHP_autoformatcomment=1


" php自动补全  Ctrl-x Ctrl-o 
"autocmd FileType php set omnifunc=phpcomplete#CompletePHP
"
" F5编译和运行C程序,F6编译和运行C++程序
" 请注意,下述代码在windows下使用会报错
" 需要去掉./这两个字符


" C的编译和运行
map <F7> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc


" C++的编译和运行
map <F6> :call CompileRunGpp()<CR>
func! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc


" 漂亮的显示.NFO文件
set encoding=utf-8
function! SetFileEncodings(encodings)
    let b:myfileencodingsbak=&fileencodings
    let &fileencodings=a:encodings
endfunction
function! RestoreFileEncodings()
    let &fileencodings=b:myfileencodingsbak
    unlet b:myfileencodingsbak
endfunction


au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single
au BufReadPost *.nfo call RestoreFileEncodings()


" 高亮显示普通txt文件(需要txt.vim脚本)
au BufRead,BufNewFile * setfiletype txt


" 用空格键来开关折叠
set foldenable
set foldmethod=manual
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示


if has("autocmd")
   autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number
   autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o-->
   autocmd FileType java,c,cpp,cs vmap <C-o> <ESC>'<o/*<ESC>'>o*/
   autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100
   autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim
   autocmd BufReadPost *
      \ if line("'\"") > 0 && line("'\"") <= line("$") |
      \   exe "normal g`\"" |
      \ endif
endif " has("autocmd")


" F5编译和运行C程序,F6编译和运行C++程序
" 请注意,下述代码在windows下使用会报错
" 需要去掉./这两个字符


" C的编译和运行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc


" C++的编译和运行
map <F6> :call CompileRunGpp()<CR>
func! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc

"""""""""""""""""""""""7.simple helpdoc"""""""""""""""""""""""""""

"""""""""""""""""""""""8.End""""""""""""""""""""""""""""""""""""
" autoload _vimrc 通过vim编辑_vimrc文件并保存时对vim的定制立即生效无需重启vim
autocmd! bufwritepost _vimrc source %


"""""""""""""""""""""9.符号自动补齐"""""""""""""""""""""""""""""""""""""""""""

: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
:inoremap ` ``<ESC>i
function ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
    else
        return a:char
    endif
endf

"""""""""""""""""""""9.符号自动补齐"""""""""""""""""""""""""""""""""""""""""""



如果要加载不同的vimrc, 可以在启动的时候增加-u vimrc_others 来加载不同的配置,

#vim -u /home/tom/.vim/vimrc 这里就会只加载用户tom的vimrc文件 

如果需要调试, 谁的也不加, 可以

#vim -u NORC 

这样vim启动的时候就不会读取任何的配置.

/**********************linux vimrc configureend***************************/

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值