以前写PHP时的vim配置
第一步:下载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 <leader>w saves the current filelet mapleader = ","let g:mapleader = ","" Fast savingnmap <leader>w :w!<cr>"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => 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 <leader>/ :nohlsearch<CR>"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 <silent> * :call VisualSelection('f')<CR>"vnoremap <silent> # :call VisualSelection('b')<CR>"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => 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 <Leader>h <C-w>hnnoremap <Leader>l <C-w>lnnoremap <Leader>j <C-w>jnnoremap <Leader>k <C-w>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/<C-R><C-W>\>//g<LEFT><LEFT>vmap S :s/<C-R><C-W>\>//g<LEFT><LEFT>"基本编辑器设置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 <silent> <leader>ss :source ~/.vimrc<cr>" 设置快速编辑.vimrc快捷键map <silent> <leader>ee :e ~/.vimrc<cr> "------ Replacing ------"type S, then type what you're looking for, a /, and what to replace it withnmap S :%s/<C-R><C-W>\>//g<LEFT><LEFT>vmap S :s/<C-R><C-W>\>//g<LEFT><LEFT>""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Scott McCoy/svn.vim" http://www.vim.org/scripts/script.php?script_id=743" cd ~/.vim" tar zxvf svn-<version>.tgz"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""更新当前目录的代码"map <F5> :!svn up<CR>"提交SVN(当前目录)"map <F7> :!svn ci -m ""<CR>"提交SVN(当前文件)"map <F8> :!svn ci -m "" %<CR> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" =>Tagbar" http://www.vim.org/scripts/script.php?script_id=3465 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""noremap <silent> <Leader>y :TagbarToggle<CR>let 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 <Leader>ct :! /usr/bin/ctags-exuberant -R *<CR>""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => 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 <silent> <Leader>n :NERDTreeToggle<CR> " These prevent accidentally loading files while in the NERDTree panel autocmd FileType nerdtree noremap <buffer> <c-left> <nop> autocmd FileType nerdtree noremap <buffer> <c-h> <nop> autocmd FileType nerdtree noremap <buffer> <c-right> <nop> autocmd FileType nerdtree noremap <buffer> <c-l> <nop>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'"<F5>: start/run (to next breakpoint/end of script)"<F2>: step over"<F3>: step into"<F4>: step out"<F6>: stop debugging"To stop debugging, press <F6>. Press it again to close the debugger interface."<F7>: detach script from debugger"<F9>: run to cursor"<F10>: set line breakpoint"<F11>: show context variables (e.g. after ""eval")"<F12>: evaluate variable under cursor":Breakpoint <type> <args>: set a breakpoint of any type (see :help VdebugBreakpoints)":VdebugEval <code>: evaluate some code and display the result"<Leader>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

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.
