目錄javascript
配置過程php
1.配置vim,只需在Home目錄建立一個~/.vimrc文件便可以配置vim了css
2.按照下面給出的vimrc配置內容修改~/.vimrc文件html
3.安裝ctagsvue
yum install ctags
4.安裝Vundel並安裝插件java
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
" 定義快捷鍵的前綴,即 <Leader> let mapleader=";" " >> " 文件類型偵測 " 開啓文件類型偵測 filetype on " 根據偵測到的不一樣類型加載對應的插件 filetype plugin on " << " >> " vim 自身(非插件)快捷鍵 " 定義快捷鍵到行首和行尾 nmap LB 0 nmap LE $ " 定義快捷鍵關閉當前分割窗口 nmap <Leader>q :q<CR> " 定義快捷鍵保存當前窗口內容 nmap <Leader>w :w<CR> " 定義快捷鍵保存全部窗口內容並退出 vim nmap <Leader>WQ :wa<CR>:q<CR> " 不作任何保存,直接退出 vim nmap <Leader>Q :qa!<CR> " 定義快捷鍵在結對符之間跳轉 nmap <Leader>M % " << " 讓配置變動當即生效 "autocmd BufWritePost $MYVIMRC source $MYVIMRC " >> " 其餘 " 開啓實時搜索功能 set incsearch " 搜索時大小寫不敏感 set ignorecase " 關閉兼容模式 set nocompatible "設置空格 set backspace=indent,eol,start " vim 自身命令行模式智能補全 set wildmenu " << " >>>> " 插件安裝 " vundle 環境設置 filetype off set rtp+=~/.vim/bundle/Vundle.vim " vundle 管理的插件列表必須位於 vundle#begin() 和 vundle#end() 之間 call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'altercation/vim-colors-solarized' Plugin 'tomasr/molokai' Plugin 'vim-scripts/phd' Plugin 'Lokaltog/vim-powerline' Plugin 'octol/vim-cpp-enhanced-highlight' Plugin 'nathanaelkane/vim-indent-guides' Plugin 'derekwyatt/vim-fswitch' Plugin 'kshenoy/vim-signature' Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines' Plugin 'majutsushi/tagbar' Plugin 'vim-scripts/indexer.tar.gz' Plugin 'vim-scripts/DfrankUtil' Plugin 'vim-scripts/vimprj' Plugin 'dyng/ctrlsf.vim' Plugin 'terryma/vim-multiple-cursors' Plugin 'scrooloose/nerdcommenter' Plugin 'vim-scripts/DrawIt' Plugin 'SirVer/ultisnips' Plugin 'derekwyatt/vim-protodef' Plugin 'scrooloose/nerdtree' Plugin 'fholgado/minibufexpl.vim' Plugin 'gcmt/wildfire.vim' Plugin 'sjl/gundo.vim' Plugin 'Lokaltog/vim-easymotion' Plugin 'suan/vim-instant-markdown' Plugin 'lilydjwg/fcitx.vim' Plugin '2072/PHP-Indenting-for-VIm' Plugin 'SyntaxAttr.vim' Plugin 'shawncplus/phpcomplete.vim' Plugin 'tpope/vim-unimpaired.git' Plugin 'PDV--phpDocumentor-for-Vim' Plugin 'Shougo/neocomplcache' Plugin 'scrooloose/syntastic' Plugin 'mattn/emmet-vim' Plugin 'taglist.vim' Plugin 'SearchComplete' Plugin 'ctrlpvim/ctrlp.vim' " 插件列表結束 call vundle#end() filetype plugin indent on " <<<< " 配色方案 set background=dark "colorscheme solarized colorscheme molokai "colorscheme phd "molokai{{{ set rtp+=/usr/local/lib/python2.7/site-packages/powerline/bindings/vim/ set laststatus=2 set t_Co=256 colo molokai let g:molokai_original = 1 "}}} "Shougo/neocomplcache{{{ "Bundle 'Shougo/neocomplcache' set completeopt-=preview let g:neocomplcache_enable_at_startup = 1 let g:neocomplcache_enable_smart_case = 1 let g:neocomplcache_enable_camel_case_completion = 1 let g:neocomplcache_enable_underbar_completion = 1 let g:neocomplcache_caching_limit_file_size = 50000000 let g:neocomplcache_min_syntax_length = 2 "<CR>: close popup and save indent. inoremap <expr><CR> neocomplcache#smart_close_popup() . "\<CR>" "<TAB>: completion. NO USE with snipmate inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" "<C-h>, <BS>: close popup and delete backword char. inoremap <expr><C-h> neocomplcache#smart_close_popup()."\<C-h>" inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h>" inoremap <expr><C-Y> neocomplcache#close_popup() inoremap <expr><C-e> neocomplcache#cancel_popup() "let g:neocomplcache_enable_auto_select = 1 "}}} "scrooloose/nerdtree{{{ "Bundle 'scrooloose/nerdtree' " let g:NERDChristmasTree = 1 "let g:NERDTreeQuitOnOpen = 1 "let g:NERDTreeMinimalUI = 1 "let g:NERDShowBookMarks = 1 "let g:NERDTreeIgnore = ['\.pyc$'] map <Leader>n :NERDTreeToggle<CR> " noremap <F2> :NERDTreeToggle<cr> "}}} let g:ctrlp_map = '<leader>p' let g:ctrlp_cmd = 'CtrlP' map <leader>f :CtrlPMRU<CR> let g:ctrlp_custom_ignore = { \ 'dir': '\v[\/]\.(git|hg|svn|rvm)$', \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$', \ } let g:ctrlp_working_path_mode=0 let g:ctrlp_match_window_bottom=1 let g:ctrlp_max_height=15 let g:ctrlp_match_window_reversed=0 let g:ctrlp_mruf_max=500 let g:ctrlp_follow_symlinks=1 "scrooloose/syntastic{{{ "Bundle 'scrooloose/syntastic' let g:syntastic_always_populate_loc_list = 1 "let g:syntastic_aggregate_errors = 1 let g:syntastic_mode_map = { 'mode': 'active', \ 'active_filetypes': [], \ 'passive_filetypes': ['python'] } "}}} " >> " 營造專一氣氛 " 禁止光標閃爍 set gcr=a:block-blinkon0 " 禁止顯示滾動條 set guioptions-=l set guioptions-=L set guioptions-=r set guioptions-=R " 禁止顯示菜單和工具條 set guioptions-=m set guioptions-=T " >> " 輔助信息 " 老是顯示狀態欄 set laststatus=2 " 顯示光標當前位置 "set ruler " 開啓行號顯示 set number " 高亮顯示當前行/列 "set cursorline "set cursorcolumn " 高亮顯示搜索結果 set hlsearch " << " >> " 其餘美化 " 設置 gvim 顯示字體 set guifont=YaHei\ Consolas\ Hybrid\ 10.5 " 禁止折行 "set nowrap " 設置狀態欄主題風格 let g:Powerline_colorscheme='solarized256' " << " >> " 語法分析 " 開啓語法高亮功能 syntax enable " 容許用指定語法高亮配色方案替換默認方案 syntax on " << " >> " 縮進 " 自適應不一樣語言的智能縮進 filetype indent on " 將製表符擴展爲空格 set expandtab " 設置編輯時製表符佔用空格數 set tabstop=4 " 設置格式化時製表符佔用空格數 set shiftwidth=4 " 讓 vim 把連續數量的空格視爲一個製表符 set softtabstop=4 " 縮進可視化插件 Indent Guides " 隨 vim 自啓動 let g:indent_guides_enable_on_vim_startup=1 " 從第二層開始可視化顯示縮進 let g:indent_guides_start_level=2 " 色塊寬度 let g:indent_guides_guide_size=1 " 快捷鍵 i 開/關縮進可視化 nmap <silent> <Leader>i <Plug>IndentGuidesToggle " << " 模板補全 " UltiSnips 的 tab 鍵與 YCM 衝突,從新設定 let g:UltiSnipsSnippetDirectories=["mysnippets"] let g:UltiSnipsExpandTrigger="<leader><tab>" let g:UltiSnipsJumpForwardTrigger="<leader><tab>" let g:UltiSnipsJumpBackwardTrigger="<leader><s-tab>" " 設置空格替換/ map <space> / "Filetype Specified {{{ " "=>PHP section autocmd FileType php inoremap <buffer> {<cr> {<cr>}<esc>O autocmd FileType php noremap <buffer> <leader>ep i<?php ?><esc>hhi autocmd FileType php noremap <buffer> <leader>eP i<?php<cr>?><esc>O<esc>==i autocmd FileType php noremap <buffer> <leader>ee i<?php echo ; ?><esc>hhhi autocmd FileType php setlocal cindent autocmd FileType php setlocal makeprg=php\ % autocmd FileType php setlocal omnifunc=phpcomplete#CompletePHP autocmd BufRead,BufNewFile *.ctp set filetype=php.html let g:php_folding = 1 let g:php_strict_blocks = 1 let g:php_sql_query = 1 let g:php_htmlInStrings = 1 let g:php_baseLib = 1 let g:php_special_vars = 1 let g:php_special_functions = 1 let g:php_alt_assignByReference = 1 let g:php_smart_members = 1 let g:php_nested_functions = 1 let g:php_fold_heredoc = 1 """""""""""""""""""""""""""""" " => CSS section """""""""""""""""""""""""""""" autocmd FileType css inoremap <buffer> {<cr> {<esc>o}<esc>O autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS """""""""""""""""""""""""""""" " => Python section """""""""""""""""""""""""""""" au FileType python setlocal makeprg=ipython\ % let python_highlight_all = 1 au BufNewFile,BufRead *.jinja set syntax=htmljinja au BufNewFile,BufRead *.mako set ft=mako au BufNewFile,BufRead *.volt set ft=html au FileType python highlight OverLength ctermbg=red ctermfg=white guibg=#592929 au FileType python match OverLength /\%80v.\+/ """""""""""""""""""""""""""""" " => C section """"""""""""""""""""""""""""""" autocmd FileType C inoremap <buffer> {<cr> {<esc>o}<esc>O autocmd FileType C setlocal makeprg=gcc\ -o\ a\ % \&\& ./a """""""""""""""""""""""""""""" " => JavaScript section """"""""""""""""""""""""""""""" au FileType javascript inoremap <buffer> {<cr> {<esc>o}<esc>O " au FileType javascript call JavaScriptFold() au FileType javascript setl fen au FileType javascript setl nocindent au FileType javascript imap <c-t> AJS.log();<esc>hi au FileType javascript imap <c-a> alert();<esc>hi function! JavaScriptFold() setl foldmethod=syntax setl foldlevelstart=1 syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend function! FoldText() return substitute(getline(v:foldstart), '{.*', '{...}', '') endfunction setl foldtext=FoldText() endfunction au FileType volt set ft=html """""""""""""""""""""""""""""" " => ActionScript section """"""""""""""""""""""""""""""" au BufNewFile,BufRead *.as set filetype=actionscript au BufNewFile,BufRead *.blade.php set filetype=html au BufNewFile,BufRead *.vue set filetype=html """""""""""""""""""""""""""""" " => Vim grep """""""""""""""""""""""""""""" let Grep_Skip_Dirs = 'RCS CVS SCCS .svn generated' set grepprg=/bin/grep\ -nH "}}}
Vundle 是 Vim bundle 的簡稱,是一個 Vim 插件管理器.python
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
默認安裝在/.vim/bundle/vundle下;git
能夠在終端經過vim打開~/.vimrc文件,github
$vim ~/.vimrc
將如下加在.vimrc文件中,加入以後保存以後就可使用vundle了。
添加的配置信息(樣例)
注:之後安裝新插件就直接編輯vimrc,添加plugin就好了,在這裏咱們添加的plugin只是例子,你能夠不安裝這些插件,換上本身須要安裝的插件。sql
set nocompatible " 去除VI一致性,必需要添加 filetype off " 必需要添加 " 設置包括vundle和初始化相關的runtime path set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " 另外一種選擇, 指定一個vundle安裝插件的路徑 "call vundle#begin('~/some/path/here') " 讓vundle管理插件版本,必須 Plugin 'VundleVim/Vundle.vim' " 如下範例用來支持不一樣格式的插件安裝. " 請將安裝插件的命令放在vundle#begin和vundle#end之間. " Github上的插件 " 格式爲 Plugin '用戶名/插件倉庫名' Plugin 'tpope/vim-fugitive' " 來自 http://vim-scripts.org/vim/scripts.html 的插件 " Plugin '插件名稱' 其實是 Plugin 'vim-scripts/插件倉庫名' 只是此處的用戶名能夠省略 Plugin 'L9' " 由Git支持但再也不github上的插件倉庫 Plugin 'git clone 後面的地址' Plugin 'git://git.wincent.com/command-t.git' " 本地的Git倉庫(例如本身的插件) Plugin 'file:///+本地插件倉庫絕對路徑' Plugin 'file:///home/gmarik/path/to/plugin' " 插件在倉庫的子目錄中. " 正確指定路徑用以設置runtimepath. 如下範例插件在sparkup/vim目錄下 Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} " 安裝L9,若是已經安裝過這個插件,可利用如下格式避免命名衝突 Plugin 'ascenator/L9', {'name': 'newL9'} " 你的全部插件須要在下面這行以前 call vundle#end() " 必須 filetype plugin indent on " 必須 加載vim自帶和插件相應的語法和文件類型相關腳本 " 忽視插件改變縮進,可使用如下替代: "filetype plugin on
運行 vim ,再運行 :PluginInstall
安裝完成以後,插件就可使用。
打開 ~/.vimrc 增長配置
call vundle#begin() "其餘一些插件 Plugin 'scrooloose/nerdtree' call vundle#end()
運行 vim ,再運行 :PluginInstall
再次打開 ~/.vimrc 個性化配置
map <Leader>n :NERDTreeToggle<CR>
這樣就能夠打開vim以後,先按;而後n,快捷打開NERDTree了
若是沒有定義leader的話請定義
let mapleader=";"
經常使用操做
ctrl + w + h 光標 focus 左側樹形目錄 ctrl + w + l 光標 focus 右側文件顯示窗口 ctrl + w + w 光標自動在左右側窗口切換 #!!! ctrl + w + r 移動當前窗口的佈局位置 i split 一個新窗口打開選中文件,並跳到該窗口 s vsplit 一個新窗口打開選中文件,並跳到該窗口 m 顯示文件系統菜單,而後根據提示進行文件的操做如新建,重命名等
Plugin 'Lokaltog/vim-easymotion'
經常使用操做
;;w 當前光標後的全部word,提供快捷鍵跳轉 ;;b 當前光標前的全部word,提供快捷鍵跳轉 ;;j 當前光標後的全部行,提供快捷鍵跳轉 ;;k 當前光標後的全部行,提供快捷鍵跳轉
引入
Plugin 'ctrlpvim/ctrlp.vim'
其它配置
let g:ctrlp_map = '<leader>p' let g:ctrlp_cmd = 'CtrlP' map <leader>f :CtrlPMRU<CR> let g:ctrlp_custom_ignore = { \ 'dir': '\v[\/]\.(git|hg|svn|rvm)$', \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$', \ } let g:ctrlp_working_path_mode=0 let g:ctrlp_match_window_bottom=1 let g:ctrlp_max_height=15 let g:ctrlp_match_window_reversed=0 let g:ctrlp_mruf_max=500 let g:ctrlp_follow_symlinks=1
經常使用操做
<leader>f # 模糊搜索最近打開的文件(MRU) <leader>p # 模糊搜索當前目錄及其子目錄下的全部文件 //搜索框出來後,輸入關鍵詞,而後能夠作以下操做 ctrl + j/k # 進行上下選擇 ctrl + x # 在當前窗口水平分屏打開文件 ctrl + v # 同上, 垂直分屏 ctrl + t # 在tab中打開 //在搜索框狀態下,還能夠進行額外操做 F5 # 刷新可搜索文件 <c-d> # 只能搜索全路徑文件 <c-r> # 可使用正則搜索文件