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

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

2011-08-06 20:58 549 查看
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***************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐