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.vimhttp://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
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***************************/