热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

打造PHP工程师的VIM

准备vim#安装vim7.4yuminstall-yvim#更新vimyumupdate-yvimctags#安装ctagsyuminstall-yctagsgi

准备

vim

#安装vim 7.4
yum install -y vim
#更新vim
yum update -y vim

ctags

#安装 ctags
yum install -y ctags

git

#安装git
#yum install -y git

自动提示

php 函数列表 下载

安装

Vundle

安装

mkdir -p ~/.vim/bundle
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

使用

:BundleList -列举出列表中(.vimrc中)配置的所有插件
:BundleInstall -安装列表中全部插件
:BundleInstall! -更新列表中全部插件
:BundleSearch foo -查找foo插件
:BundleSearch! foo -刷新foo插件缓存
:BundleClean -清除列表中没有的插件
:BundleClean! -清除列表中没有的插件

插件

安装

#随便打开一个文件
vim index.php
#查看插件列表
:BundleList
#安装插件
:BundleInstall

PHP自动提示文件

#把函数列表移动到插件目录
mv phpfunction.txt ~/.vim/bundle/phpfunction.txt

配置
""""""""""""""""""""""""""""""""""""""""""""""""
" 插件管理
""""""""""""""""""""""""""""""""""""""""""""""""

""""""""""""""""""""""""""""""
" Vundle 插件
" :BundleList -列举出列表中(.vimrc中)配置的所有插件
" :BundleInstall -安装列表中全部插件
" :BundleInstall! -更新列表中全部插件
" :BundleSearch foo -查找foo插件
" :BundleSearch! foo -刷新foo插件缓存
" :BundleClean -清除列表中没有的插件
" :BundleClean! -清除列表中没有的插件
"""""""""""""""""""""""""""""""
set nocompatible " 这是必需的
filetype off " 这是必需的

" 你在此设置运行时路径
set rtp+=~/.vim/bundle/Vundle.vim
" vundle初始化
call vundle#begin()
" 这应该始终是第一个
Plugin 'gmarik/Vundle.vim'
"Plugin 'git://github.com/ilei/phpcheck-vim.git'

""""""""""""""""""""""""""""""
" 标签插件
" 常用命令 mx dmx m, m. m- m '] '[ [' ]' m/
" https://github.com/kshenoy/vim-signature
""""""""""""""""""""""""""""""
Plugin 'kshenoy/vim-signature'

"""""""""""""""""""""""""""""""
" 函数列表Bundle 'taglist.vim' 配置
" command yum install ctags
" command ctags -R | :set tags=/$DIR/tags | Ctrl+] Ctrl+t|man ctags
" Tlist
"""""""""""""""""""""""""""""""
Bundle 'taglist.vim'
let Tlist_Show_One_File=1 "只显示当前文件的tags
let Tlist_Winhljs-number">40 "设置taglist宽度
let Tlist_Exit_OnlyWindow=1 "tagList窗口是最后一个窗口,则退出Vim
let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口

""""""""""""""""""""""""""""""
" 文件资源浏览器
" :NERDTree 或者 f2
""""""""""""""""""""""""""""""
Bundle 'scrooloose/nerdtree'
let NERDTreeWinPos='left'
let NERDTreeWinSize=30
map :NERDTreeToggle
""""""""""""""""""""""""""""""
" MiniBufExplorer 多文件编辑器
" :MBEbp :MBEbn :MBEdb [num] :MBEbd
""""""""""""""""""""""""""""""
Bundle 'fholgado/minibufexpl.vim'
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
let g:miniBufExplMoreThanOne=0

map :MBEbp
map :MBEbn

call vundle#end() " required

""""""""""""""""""""""""""""""
" 插件结束
"""""""""""""""""""""""""""""""
set fileencodings=utf-8,gb2312,gbk,gb18030 "支持中文编码
set termencoding=utf-8
set fileformats=unix
set encoding=prc
""""""""""""""""""""""""""""""""""""""""
" Windows 兼容
"""""""""""""""""""""""""""""""""""""""
if has("win32")
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
endif
" =======================================
" <<判断操作系统是 Windows 还是 Linux 和判断是终端还是 Gvim >>
" ========================================

" ----------------------------------------
" <判断操作系统是否是 Windows 还是 Linux >
" ----------------------------------------
let g:iswindows = 0
let g:islinux = 0
if(has("win32") || has("win64") || has("win95") || has("win16"))
let g:iswindows = 1
else
let g:islinux = 1
endif

" ------------------------------------------
" <判断是终端还是 Gvim >
" -------------------------------------------
if has("gui_running")
let g:isGUI = 1
else
let g:isGUI = 0
endif

if (g:iswindows && g:isGUI)
"解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

"解决consle输出乱码
language messages zh_CN.utf-8
endif
""""""""""""""""""""""""""""""
" Vim 7.4
" 行号相关begin
"""""""""""""""""""""""""
" 插入模式设置非相对行号
"""""""""""""""""""""""""
autocmd InsertEnter * :set norelativenumber
""""""""""""""""""""""""
" 命令模式设置相对行号
""""""""""""""""""""""""
autocmd InsertLeave * :set relativenumber
""""""""""""""""""""""""
" 初始化展示相对行号
""""""""""""""""""""""""
set number relativenumber
""""""""""""""""""""""""
" Ctrl+n 切换相对和绝对行号
""""""""""""""""""""""""
function! NumberToggle()
if(&relativenumber == 1)
set norelativenumber number
else
set relativenumber
endif
endfunc
nnoremap :call NumberToggle()
""""""""""""""""""""""""""""""""""
" 行号相关end
" 换行缩进设置begin
"""""""""""""""""""""""""""""
set smartindent "启用智能缩进方式
set autoindent "换行缩进内容同上
set tabstop=4 "Tab键的宽度为4个空格
set shifthljs-number">4 "Tab换行自动缩进4个空格
set expandtab "Tab转换为空格
set smarttab "一次backspace删除shitfwidth宽度
"set nowrap "设置不自动换行
set wrap "自动换行
"""""""""""""""""""""""""""""
" 搜索设置
""""""""""""""""""""""""""""
set hlsearch "高亮显示匹配内容
set incsearch "输入内容时开始查找
set ignorecase "搜索忽略大小写
""""""""""""""""""""""""""""
" 语法高亮
""""""""""""""""""""""""""""
syntax on
syntax enable
""""""""""""""""""""""""""""
" 智能补全
""""""""""""""""""""""""""""
set wildmenu "vim自身命令行模式智能补全

autocmd FileType php set omnifunc=phpcomplete#CompletePHP "对php文件自动补全

set dictionary+=~/.vim/bundle/phpfunction.txt
set complete-=k complete+=k
function! InsertTabWrapper()
let col=col('.')-1
if !col || getline('.')[col-1] !~ '\k'
return "\"
else
return "\"
endif
endfunction
inoremap =InsertTabWrapper()
""""""""""""""""""""""""""""
" 内容折叠
" http://blog.csdn.net/qq_27968607/article/details/60956584
""""""""""""""""""""""""""""
set foldmethod=marker
""""""""""""""""""""""""""""""
"" <<快捷键设置 >>
""""""""""""""""""""""""""""
"" Ctrl + K 插入模式下光标向上移动
"imap
"" Ctrl + J 插入模式下光标向下移动
"imap
"" Ctrl + H 插入模式下光标向左移动
"imap
"" Ctrl + L 插入模式下光标向右移动
"imap
"
""""""""""""""""""""""""""""
" 配色方案
"""""""""""""""""""""""""""
if has("gui_running")
colo solarized
else
colo desert
endif
"set nocp
set background=light
set guifOnt=YaHei\ Consolas\ Hybrid\ 12 "设置字体
set laststatus=2 "启用状态栏信息
"set cmd设置命令行高度为2,默认1
set ruler "显示光标当前位置
set cursorline "高亮显示当前行/列
"set cursorcolumn

"colorscheme molokai
"colorscheme solarized
"

推荐阅读
  • 怎么解决oracle提示框显示不全问题
    这篇文章主要介绍“怎么解决oracle提示框显示不全问题”,在日常操作中,相信很多人在怎么解决oracle提示框显示不全问题问题上存在疑惑,小编查阅 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • Answer:Theterm“backslash”isonofthemostincorrectlyusedtermsincomputing.People ... [详细]
author-avatar
l季莫_339
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有