打造PHP工程师的VIM

准备

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_WinWidth=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 shiftwidth=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 cmdheight=2                 "设置命令行高度为2,默认1
set ruler                       "显示光标当前位置
set cursorline                  "高亮显示当前行/列
"set cursorcolumn

"colorscheme molokai   
"colorscheme solarized
"

你可能感兴趣的:(Linux软件安装及配置)