php vim 配置

本文介绍了一套全面的Vim编辑器配置方案,旨在改善文本显示、菜单处理、编码设置、文件类型识别、代码折叠、命令历史等功能,通过调整各项设置以优化编程体验和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.163.com/023_dns/blog/static/118727366201151411502874/

autocmd! bufwritepost _vimrc source %

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"      基础配置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 处理文本中显示乱码
set encoding=utf-8
set fileencodings=chinese
set fileencoding=chinese

" 处理菜单及右键菜单乱码
source $vimruntime/delmenu.vim
source $vimruntime/menu.vim

" 处理consle输出乱码
language messages zh_cn.utf-8

" 关闭VIM兼容模式
"set nocompatible

" 文件编码格式
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936,gb2312

" 帮助文件使用中文
set helplang=cn

" 关闭语法高亮
syntax enable

" 根据文件类型高亮
filetype plugin on

" 显示行
set nu

" 设置折叠模式
"set foldcolumn=4

" 光标遇到折叠就打开
"set foldopen=all

" 用语法高亮来定义折叠
set foldmethod=syntax     " 语法高亮折叠
"set foldmethod=indent    " 更多的缩进表示更高级别的折叠

" 依标记折叠
set foldmethod=marker

" 缺省不产生备份文件
set nobackup

" 取消交换区
set nowb

" 鼠标点击边缘上下7行时自动滚动
set so=7

" 设置VIM皮肤色
if has("gui_running")
 colorscheme candy
endif

" 保存400个命令和400个查找历史
set history=100

" 总在窗口右下角显示当前光标位置
set ruler

" 使用鼠标右键
set mouse=a

" 设置魔术
set magic

" 自动切换当前目录为当前文件所在的目录
set autochdir

" 突出显示当前行
set cursorline

" 置空错误铃声的终端代码
set t_vb=

" 隐藏工具栏
set guioptions-=T

" 隐藏菜单栏
set guioptions-=m

" 短暂跳转到匹配括号的时间
set matchtime=4

" 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set hidden

" 启动后最大化
au GUIEnter * simalt ~x

" 显示TAB健
set list

" 去掉有关vi一致性模式,避免以前版本的一些bug和局限
set nocp

" 执行 VIM 缺省提供的 .vimrc文件的示例,包含了打开语法高亮显示等最常用的功能
source $VIMRUNTIME/vimrc_example.vim

"保存文件的格式顺序
set fileformats=dos,unix

"列高亮,与函数列表有冲突
"set cursorcolumn

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"     文件设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 不要备份文件
set nobackup

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

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

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

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

" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2

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

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

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

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

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

" 自动加载被修改的文件
set autoread

" 单词换行处,整个单词不会折行
set lbr

" 字符宽度
set tw=0

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"     搜索与匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 在输入括号时光标会暂时地与相匹配的括号处,不影响输入
set showmatch

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

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

" 不要高亮被搜索的句子(phrases)
set nohlsearch

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

" 输入:set list命令是应该显示些啥?
"set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
set listchars=tab:>-,trail:-

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

" 不要闪烁
set novisualbell

" 总是显示状态行
set laststatus=2

" 输入搜索内容时就显示搜索结果
set incsearch               


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"      文本排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 自动缩进
set ai

" 开启自动换行
set wrap

" 启动VIM时不要自动折叠代码
set foldlevel=100

" 缩进格式
au FileType html,python,vim,javascript,tpl setl shiftwidth=2      "html,python,vim,js shfit缩进格式
au FileType html,python,vim,javascript,tpl setl tabstop=2         "html,python,vim,js tab缩进格式

au FileType java,php setl shiftwidth=4    "java,php shift缩进格式
au FileType java,php setl tabstop=4       "java,php tab缩进格式

" 用空格代替制表符
set expandtab

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

" 使用C语言缩进方式
set cindent

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

" 智能对齐方式
set smartindent

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"     CTags设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 是否高亮显示当前标签
let Tlist_Auto_Highlight_Tag = 1

" 自动打开Tlist
let Tlist_Auto_Open = 0

" 自动更新Tlist
let Tlist_Auto_Update = 1

" 选择标签或文件后是否自动关闭标签列表窗口
let Tlist_Close_On_Select = 0

" 压缩方式
let Tlist_Compact_Format = 1

" 是否在标签列表窗口用标签原型替代标签名
let Tlist_Display_Prototype = 0

" 在标签名后是否显示标签有效范围
let Tlist_Display_Tag_Scope = 1

" 不显示折叠树
let Tlist_Enable_Fold_Column = 0

" 关闭VIM同时关闭Tlist
let Tlist_Exit_OnlyWindow = 1

" 不关闭其他的tags
let Tlist_File_Fold_Auto_Close = 0

" 为1则使用TlistToggle打开标签列表窗口后会获焦点至于标签列表窗口;为0则taglist打开后焦点仍保持在代码窗口
let Tlist_GainFocus_On_ToggleOpen = 1

" 显示标签列表窗口时允许/禁止扩展Vim窗口宽度
let Tlist_Inc_Winwidth = 0

" F12开关Tlist
nnoremap <C-F11> :TlistToggle<CR>

" 设置ctags运行的位置
let Tlist_Ctags_Cmd = 'D:\vim\vim73\ctags.exe'

" 设置tags文件目录
set tags=E:\sys_item\php\tczp\tags

" F12生成/更新tags文件
function! UpdateTagsFile()
    silent !ctags -R --fields=+ianS --extra=+q
endfunction
nmap <C-F12> :call UpdateTagsFile()<CR>

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"     NERDTreeToggle设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" F10打开目录树
"map <C-F10> :NERDTreeToggle<CR>

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"      Buffer设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:bufExplorerDefaultHelp=0       " Do not show default help.
let g:bufExplorerShowRelativePath=1  " Show relative paths.
let g:bufExplorerSortBy='mru'        " Sort by most recently used.
let g:bufExplorerSplitRight=0        " Split left.
let g:bufExplorerSplitVertical=1     " Split vertically.
let g:bufExplorerSplitVertSize = 30  " Split width
let g:bufExplorerUseCurrentWindow=1  " Open in new window.
map <C-F8> :BufExplorer<CR>

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"      MiniBuffer设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 允许进行<C-Tab>和<C-S-Tab>进行切换
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplModSelTarget = 1 
let g:miniBufExplorerMoreThanOne=0    "让minibuffer只出现一个

map <C-Tab> :bn<CR>     "切换Buffer,右切换
map <S-Tab> :bp<CR>     "切换Buffer,左切换

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"      winManager设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 设置界面分割
let g:winManagerWindowLayout = "TagList|FileExplorer"

" 设置winmanager的宽度,默认为25
let g:winManagerWidth = 30

" 定义打开关闭winmanager按键
nmap wm :WMToggle<cr>

" 只剩下一个窗口时,退出
let g:persistentBehaviour=0

" 进入VIM的时候自动打开
"let g:AutoOpenWinManager = 1

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"      cscope设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" cscope配置,设置为quickfix显示模式
":set cscopequickfix=s-,c-,d-,i-,t-,e-

" 添加cscope生成文件
":cs add E:\sys_item\php\tcsns\cscope.out E:\sys_item\php\tcsns

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"       Xdebug设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 配置Xdebug,内容显示包含数组
let g:debuggerMaxDepth = 7

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"       SuperTab设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 记住上次补全的位置
" 0 -  不记录上次的补全方式
" 1 -  记住上次的补全方式,直到用其他的补全命令改变它
" 2 -  记住上次的补全方式,直到按ESC退出插入模式为止
"let g:SuperTabRetainCompletionType=2

"let g:SuperTabDefaultCompletionType="<C-X><C-O>"

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" DoxygenToolkit 设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"let g:DoxygenToolkit_authorName="figth, 023_dns@163.com"
"let s:licenseTag = "Copyright(C)\<enter>"
"let s:licenseTag = s:licenseTag . "For free\<enter>"
"let s:licenseTag = s:licenseTag . "All right reserved\<enter>"
"let g:DoxygenToolkit_licenseTag = s:licenseTag
"let g:DoxygenToolkit_briefTag_funcName="yes"
"let g:doxygen_enhanced_color=1

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"       load_template设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 自动载入模版位置
let g:template_path = 'D:\vim\vimfiles\template\'

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"       php设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 使用PHP快速注释 CTRL+P
source D:\vim\vimfiles\plugin\php-doc.vim
inoremap <C-p> <ESC>:call PhpDocSingle()<CR>
nnoremap <C-p> :call PhpDocSingle()<CR>
vnoremap <C-p> :call PhpDocRange()<CR>

" 语法补全使用php
autocmd FileType php set omnifunc=phpcomplete#CompletePHP

" 使php识别EOT字符串
hi link phpheredoc string

" PHP支持折叠
let php_folding = 1

"php缩进
let PHP_autoformatcomment=1

" php启动帮助 快捷键普通模式下K
autocmd BufNewFile,Bufread *.ros,*.inc,*.php set keywordprg="help"

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"       javascript设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 打开javascript折叠
let b:javascript_fold=1

" 打开javascript对dom、html和css的支持
let javascript_enable_domhtmlcss=1

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"       其他设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 设置字典 ~/.vim/dict/文件的路径
autocmd filetype javascript set dictionary=D:/vim/vimfiles/dict/javascript.dict
autocmd filetype css set dictionary=D:/vim/vimfiles/dict/css.dict
autocmd filetype php set dictionary=D:/vim/vimfiles/dict/php.dict

" 设置项目工程的目录
function! SET_LOCAL_TAGS()
    let dir = expand("%:p:h") "获得源文件路径
    if stridx(dir, "E:\sys_item\php\tcsns") ==0  "路径在指定文件夹里。
        set tags=E:\sys_item\php\tcsns "设置工程的tags
    endif
endfunction

autocmd BufEnter * call SET_LOCAL_TAGS()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值