欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

以前写PHP时的vim配置

程序员文章站 2022-06-12 11:08:01
...
第一步:下载vim插件管理工具vundle
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

第二步:copy我的vimrc到你的~/.vimrc里面(修改之前记得备份哦)

" See: http://vimdoc.sourceforge.net/htmldoc/options.html for details"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""=> General""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""设定 gvim 运行在增强模式下,不使用vi的键盘模式set nocompatible"设置支持多语言,解决乱码"设置内部编码为utf-8set encoding=utf-8set termencoding=utf-8set fileencodings=utf-8,gbk,default,latin1"解决consle输出乱码language messages zh_CN.utf-8"帮助菜单语言set helplang=cn" Sets how many lines of history VIM has to rememberset history=700" Enable filetype pluginsfiletype off    "requiredfiletype plugin onfiletype indent on" Set to auto read when a file is changed from the outsideset autoread" With a map leader it's possible to do extra key combinations" like w saves the current filelet mapleader = ","let g:mapleader = ","" Fast savingnmap w :w!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => VIM user interface""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Set 7 lines to the cursor - when moving vertically using j/k"光标离上下边界7行时开始滚屏set so=7" Turn on the Wild menuset wildmenu" Ignore compiled filesset wildignore=*.o,*~,*.pycif has("win16") || has("win32")    set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Storeelse    set wildignore+=.git\*,.hg\*,.svn\*endif" Height of the command barset cmdheight=2" Configure backspace so it acts as it should actset backspace=eol,start,indentset whichwrap+=,h,l" Ignore case when searchingset ignorecase" When searching try to be smart about cases set smartcase" Highlight search resultsset hlsearch" Makes search act like search in modern browsersset incsearch" Following line clears the search highlights when pressing Lbnnoremap / :nohlsearch"Don't redraw while executing macros (good performance config)set lazyredraw" For regular expressions turn magic onset magic" Show matching brackets when text indicator is over themset showmatch" How many tenths of a second to blink when matching bracketsset mat=2" No annoying sound on errorsset noerrorbellsset novisualbellset t_vb=set tm=500"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Colors and Fonts"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Enable syntax highlightingsyntax enabletry    colorscheme desertcatchendtryset background=dark" Set extra options when running in GUI modeif has("gui_running")    set guioptions-=T    set guioptions+=e    set t_Co=256    set guitablabel=%M\ %tendif" Use Unix as the standard file typeset ffs=unix,dos,mac"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Files, backups and undo"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Turn backup off, since most stuff is in SVN, git et.c anyway...set nobackupset nowbset noswapfile"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Text, tab and indent related"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Use spaces instead of tabsset expandtab" Be smart when using tabs ;)set smarttabset tabstop=4set shiftwidth=4"对于不同类型的文件,进行自定义设置au FileType html,im,javascript,css set shiftwidth=2au FileType html,im,javascript,css set tabstop=2au FileType java,python,php set shiftwidth=4au FileType java,python,php set tabstop=4"设置每行的最大字符数,超过的话,将换行set textwidth=80" Linebreak on 500 charactersset lbrset tw=500set ai    "Auto indentset si    "Smart indentset wrap  "Wrap lines""""""""""""""""""""""""""""""" => Visual mode related""""""""""""""""""""""""""""""" Visual mode pressing * or # searches for the current selection" Super useful! From an idea by Michael Naumann"vnoremap  * :call VisualSelection('f')"vnoremap  # :call VisualSelection('b')"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Moving around, tabs, windows and buffers"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Treat long lines as break lines (useful when moving around in them)map j gjmap k gk" Moving Between Windowsnnoremap h hnnoremap l lnnoremap j jnnoremap k k""""""""""""""""""""""""""""""" => Status line""""""""""""""""""""""""""""""" Always show the status lineset laststatus=2" Format the status lineset statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ \ \ \ \line:\%-14.(%l,%c%V%)\ %P"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Editing mappings"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Remap VIM 0 to first non-blank charactermap 0 ^" type S, then type what you're looking for, a /, and what to replace it withnmap S :%s/\>//gvmap S :s/\>//g"基本编辑器设置set number          "显示行号set laststatus=2    "显示状态栏 (默认值为 1, 无法显示状态栏)set cmdheight=1     "设定命令行的行数为 1"set showtabline=2   "显示tab标签"set tabline+=%f     "tab标签" Enable Code Foldingset foldenableset foldmethod=syntaxset mouse=a         "任何情况都可以使用鼠标"工作目录随文件变autocmd BufEnter * cd %:p:h"不显示工具条set guioptions-=T" 配置文件.vimrc更改后自动重新载入使设置生效autocmd! bufwritepost .vimrc source ~/.vimrc "设置重新载入.vimrc快捷键map ss :source ~/.vimrc" 设置快速编辑.vimrc快捷键map ee :e ~/.vimrc "------  Replacing ------"type S, then type what you're looking for, a /, and what to replace it withnmap S :%s/\>//gvmap S :s/\>//g""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Scott McCoy/svn.vim" http://www.vim.org/scripts/script.php?script_id=743" cd  ~/.vim" tar zxvf svn-.tgz"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""更新当前目录的代码"map  :!svn up"提交SVN(当前目录)"map  :!svn ci -m """提交SVN(当前文件)"map  :!svn ci -m "" % """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" =>Tagbar" http://www.vim.org/scripts/script.php?script_id=3465 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""noremap y :TagbarTogglelet g:tagbar_ctags_bin='/usr/bin/ctags-exuberant'let g:tagbar_width=26""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" =>Exuberant Ctags" sudo apt-get install exuberant-ctags""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ,ct = Builds ctags in current directorymap ct :! /usr/bin/ctags-exuberant -R *""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => vundle" git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""set rtp+=~/.vim/bundle/vundle/call vundle#rc()"let Vundle manage Vundle"required!Bundle 'gmarik/vundle'"My Bundles here:""original repos on github" IndentBundle 'Yggdroot/indentLine'" PluginBundle 'The-NERD-tree'"------  NERDTree Options  ------"  当打开vim且没有文件时自动打开NERDTreeautocmd vimenter * if !argc(  )   | NERDTree | endif    let NERDTreeIgnore=['CVS']    let NERDTreeChDirMode=2     "setting root dir in NT also sets VIM's cd    noremap n :NERDTreeToggle    " These prevent accidentally loading files while in the NERDTree panel    autocmd FileType nerdtree noremap     autocmd FileType nerdtree noremap     autocmd FileType nerdtree noremap     autocmd FileType nerdtree noremap Bundle 'jiangmiao/auto-pairs'Bundle 'pangloss/vim-javascript'Bundle 'mattn/emmet-vim'Plugin 'mattn/jscomplete-vim'Bundle 'Shougo/neocomplcache'    " Disable AutoComplPop.    let g:acp_enableAtStartup = 0    " Use neocomplete.    let g:neocomplete#enable_at_startup = 1    " Use smartcase.    let g:neocomplete#enable_smart_case = 1    " Set minimum syntax keyword length.    let g:neocomplete#sources#syntax#min_keyword_length = 3    let g:neocomplete#lock_buffer_name_pattern = '\*ku\*'    " Define dictionary.    let g:neocomplete#sources#dictionary#dictionaries = {            \ 'default' : '',            \ 'vimshell' : $HOME.'/.vimshell_hist',            \ 'scheme' : $HOME.'/.gosh_completions'            \ }    " Define keyword.    if !exists('g:neocomplete#keyword_patterns')        let g:neocomplete#keyword_patterns = {}     endif    let g:neocomplete#keyword_patterns['default'] = '\h\w*'"Bundle 'joonty/vdebug'": start/run (to next breakpoint/end of script)": step over": step into": step out": stop debugging"To stop debugging, press . Press it again to close the debugger interface.": detach script from debugger": run to cursor": set line breakpoint": show context variables (e.g. after ""eval")": evaluate variable under cursor":Breakpoint : set a breakpoint of any type (see :help VdebugBreakpoints)":VdebugEval : evaluate some code and display the result"e: evaluate the expression under visual highlight and display the result"SyntaxBundle 'scrooloose/Syntastic'    let g:syntastic_check_on_open = 1    let g:syntastic_error_symbol = '?'    let g:syntastic_warning_symbol = '?'    let g:syntastic_auto_loc_list = 1    let g:syntastic_loc_list_height = 5    let g:syntastic_enable_highlighting = 0" 如果要对javascript进行语法检查,可以安装JSHint插件" sudo apt-get install nodejs" sudo npm install jshint" # 如果是 12.10,我发现 nodejs 可执行文件的命名不符合常规,要做个链接" sudo ln -s /usr/bin/nodejs /usr/bind/node"" :Brief help" :BundleList           -list configured bundles" :BundleInstall(!)     - install(update) bundles" :BundleSearch(!) foo  - search(or refresh cache first) for foo" :BundleClean(!)       - confirm(or auto-approve) removal of unused bundles" vundle主要就是上面这个四个命令,例如BundleInstall是全部重新安装,BundleInstall!则是更新" 一般安装插件的流程为,先BundleSearch一个插件,然后在列表中选中,按i安装" 安装完之后,在vimrc中,添加Bundle 'xxx'  使得bundle能够加载这个插件,同时如果" 需要配置这个插件,也是在vimrc中设置即可" 如果search到的安装不了,就换过来先在vimrc里添加Bundle 'xxx'" 在去vim里执行BundleInstall来安装" 卸载的话" 1. 注释掉Bundle/Plugin ×××(要删除的插件相关语句)" 2. :BundleClean" Done!" see :h vundle for more details or wiki for FAQ" ps: comments after Bundle command are not allowed.."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Helper functions"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""function! HasPaste()    if &paste        return 'PASTE MODE '    en    return ''endfunction