<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一個小博客教你把vim用飛起來

      引言

      今天我們特地來講講這個vim的配置. vim這東西, 很多人裝逼的時候經常會提到, 不過大部分人對個vim的配置還是很陌生的, 因為
      這個編輯器的學習成本還是有點高的, 但是不要緊, 今天我們就把這座大山給干掉. 順便說一句, 本人因為比較懶, 博客更新不是很
      頻繁,還是吸取教訓,以后盡量多寫一點.

      正文

      安裝vim

      關于vim的安裝, 我這里針對的vim是7.4版本, 有些人是7.2版本, 這個是不符合我的要求的. 因此, 我先演示一把, 把自己機器的vim
      給刪除了, 給大家示范如何安裝vim. 我的系統是centos7.0, 如果是別的linux系統的同學, 可以自己去調整.

      sudo yum remove vim
      

      一路按y就能搞定.

      下載vim7.4安裝包, http://www.vim.org/download.php.

      建立目錄:

      sudo mkdir -p /data1/tools
      sudo mkdir -p /data1/thd
      

      用rz -e將vim74安裝包上傳上去, 并進行解壓操作.

      sudo cp vim-7.4.tar.bz2 ../thd/
      cd ../thd/
      sudo tar jxvf vim-7.4.tar.bz2
      sudo rm -rf vim-7.4.tar.bz2
      

      下面我們進行編譯:

      cd vim74/src/
      sudo ./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --with-python-config-dir=/usr/lib64/python2.7/config/  --enable-cscope  --enable-multibyte --enable-gui=gtk2 --prefix=/usr
      sudo make -j4
      sudo make install
      

      我們來看一下我們的vim:

      哈哈, 什么都沒有, 太沒意思了, 對吧. 下面我們就把這個vim配置成和IDE差不多的環境.

      配置基本的展示形態

      首先, 我們建立目錄存放我們的主題

       mkdir -p  ~/.vim/colors
      

      這個目錄就是給我們存放主題用的, 我們用什么主題呢? 這里我們采用molokai這個主題, 當然如果讀者愿意用別的主題,
      也是可以的, 下一個就行.

      http://www.vim.org/scripts/script.php?script_id=2340下載molokai主題, 拷貝到~/.vim/colors目錄下, 創建.vimrc文件.

      touch ~/.vimrc
      

      將下面的內容拷貝到.vimrc中.

      set modelines=0
      
      "設置更好的刪除
      set backspace=2
      
      syntax on "語法高亮
      
      "用淺色高亮當前行
      autocmd InsertLeave * se nocul
      autocmd InsertEnter * se cul
      
      set smartindent "智能對齊
      
      set autoindent "自動對齊
      
      set confirm "在處理未保存或只讀文件的時候,彈出確認框
      
      set tabstop=4 "tab鍵的寬度
      set softtabstop=4
      set shiftwidth=4 "統一縮進為4
      set expandtab "不要用空格替代制表符
      
      set number "顯示行號
      set history=50  "歷史紀錄數
      set hlsearch
      set incsearch "搜素高亮,搜索逐漸高亮
      
      set gdefault "行內替換
      set encoding=utf-8
      set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 "編碼設置
      
      colorscheme molokai
      
      set guifont=Menlo:h16:cANSI "設置字體
      set langmenu=zn_CN.UTF-8
      set helplang=cn  "語言設置
      
      set ruler "在編輯過程中,在右下角顯示光標位置的狀態行
      
      set laststatus=1  "總是顯示狀態行
      
      set showcmd "在狀態行顯示目前所執行的命令,未完成的指令片段也會顯示出來
      
      set scrolloff=3 "光標移動到buffer的頂部和底部時保持3行的距離
      set showmatch "高亮顯示對應的括號
      set matchtime=5 "對應括號高亮時間(單位是十分之一秒)
      
      set autowrite "在切換buffer時自動保存當前文件
      
      set wildmenu  "增強模式中的命令行自動完成操作
      
      set linespace=2 "字符間插入的像素行數目
      set whichwrap=b,s,<,>,[,] "開啟normal 或visual模式下的backspace鍵空格鍵,左右方向鍵,insert或replace模式下的左方向鍵,右方向鍵的跳行功能
      
      filetype plugin indent on "分為三部分命令:file on,file plugin on,file indent on 分別是自動識別文件類型, 用用文件類型腳本,使用縮進定義文件
      
      set foldenable  "允許折疊
      set cursorline "突出顯示當前行
      set magic  "設置魔術?神馬東東
      set ignorecase "搜索忽略大小寫
      filetype on "打開文件類型檢測功能
      set background=dark
      set t_Co=256   "256色
      set mouse=a  "允許鼠標
      

      這時候, 我們可以發現我們的vim變成了:

      插件安裝

      這一部分比上面的樣式重要的多, 這里主要是講插件的使用, 而這些插件大大增加了vim的性能.

      1.vbundle 管理插件的插件

      我們的插件如果一個一個安裝的話, 這可能會搞死你, 因此我們希望有一個能夠自動安裝和管理插件的插件.
      這就是我們要說的vbundle, 可參考https://github.com/VundleVim/Vundle.vim.

      安裝非常簡單:

      git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
      

      然后我們來看看配置, 也非常簡單.

      set nocompatible              " be iMproved, required
      filetype off                  " required
      
      " set the runtime path to include Vundle and initialize
      set rtp+=~/.vim/bundle/Vundle.vim
      call vundle#begin()
      " alternatively, pass a path where Vundle should install plugins
      "call vundle#begin('~/some/path/here')
      
      " let Vundle manage Vundle, required
      Plugin 'VundleVim/Vundle.vim'
      
      " All of your Plugins must be added before the following line
      call vundle#end()            " required
      filetype plugin indent on    " required
      " To ignore plugin indent changes, instead use:
      "filetype plugin on
      "
      " Brief help
      " :PluginList       - lists configured plugins
      " :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
      " :PluginSearch foo - searches for foo; append `!` to refresh local cache
      " :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
      "
      " see :h vundle for more details or wiki for FAQ
      " Put your non-Plugin stuff after this line
      

      在vimrc中把上面的代貼在最前面即可.

      我們需要添加插件的話, 只要在begin和end之間加入即可.

      2. nerdtree插件

      在begin和end之間加入

      Plugin 'scrooloose/nerdtree'
      

      輸入命令

      :PluginInstall
      

      配置nerdtree:

      let NERDTreeQuitOnOpen=1 "打開文件時關閉樹
      let NERDTreeShowBookmarks=1 "顯示書簽
      

      配置快捷鍵:

      let mapleader = ","
      map <leader>ne :NERDTreeToggle<CR>
      map <leader>tl :TlistToggle<cr>
      nnoremap <leader>ma :set mouse=a<cr>
      nnoremap <leader>mu :set mouse=<cr>
      

      保存vimrc,輸入,ne, 我們看看:

      似乎有那么點意思!

      3. tagbar插件

      安裝方式:

       Plugin 'majutsushi/tagbar' 
      

      設置鍵:

      nmap <leader>tb :TagbarToggle<CR>
      

      似乎已經越來越接近我們想要的了.

      4.autopair插件

      這個插件就是給括號自動配對的.

      Plugin 'jiangmiao/auto-pairs'
      

      5.minibuffer 插件

      安裝插件:

       Plugin 'minibufexpl.vim'
      

      配置插件

      let g:miniBufExplMapWindowNavVim = 1 
      let g:miniBufExplMapWindowNavArrows = 1 
      let g:miniBufExplMapCTabSwitchBufs = 1 
      

      配置快捷鍵:

      nmap <leader>mmbe :MiniBufExplorer<CR>
      nmap <leader>mmbc :CMiniBufExplorer<CR>
      nmap <leader>mmbu :UMiniBufExplorer<CR>
      nmap <leader>mmbt :TMiniBufExplorer<CR>
      

      效果如下:

      6. taglist插件

      功能類似于tagbar
      安裝:

      Plugin 'taglist.vim' 
      

      配置:

      let Tlist_Use_Right_Window=1 "taglist 顯示在右側 
      let Tlist_Exit_OnlyWindow=1 "taglist 只剩下一個窗口時,自動關閉
      let Tlist_File_Fold_Auto_Close=1
      

      快捷鍵:
      map tl :TlistToggle
      nnoremap ev :vsplit $MYVIMRC
      nnoremap sv :source $MYVIMRC

      7. nerd comment插件

      這個插件是用來自動添加注釋的插件.

      安裝:

      Plugin 'scrooloose/nerdcommenter'
      

      8. 代碼折疊

      配置:

      "使用語法高亮定義代碼折疊
      set foldmethod=syntax
      "打開文件是默認不折疊代碼
      set foldlevelstart=99
      

      zc 折疊
      zC 對所在范圍內所有嵌套的折疊點進行折疊
      zo 展開折疊
      zO 對所在范圍內所有嵌套的折疊點展開
      [z 到當前打開的折疊的開始處。
      ]z 到當前打開的折疊的末尾處。
      zj 向下移動。到達下一個折疊的開始處。關閉的折疊也被計入。
      zk 向上移動到前一折疊的結束處。關閉的折疊也被計入。

      9. markdown插件安裝

      安裝:

      Plugin 'godlygeek/tabular'
      Plugin 'plasticboy/vim-markdown'
      

      配置:

      let g:vim_markdown_math = 1
      let g:vim_markdown_frontmatter = 1
      let g:vim_markdown_toml_frontmatter = 1
      let g:vim_markdown_json_frontmatter = 1
      

      效果:

      10.youcompleteme插件

      YouCompleteMe:一個隨鍵而全的、支持模糊搜索的、高速補全的插件。YCM 由 google 公司搜索項目組的軟件工程師 Strahinja Val Markovic 所開發,YCM 后端調用 libclang(以獲取AST,當然還有其他語言的語義分析庫)、前端由 C++ 開發(以提升補全效 率)、外層由 python 封裝(以成為 vim 插件),這是至今為止最強大也是
      最難安裝的插件之一, 有很多人都砸在這個插件上了, 我們來看看如何安裝這個插件.

      安裝插件:

       Plugin 'Valloric/YouCompleteMe'
      

      打開vim,輸入:PluginInstall, vim會自動去從git上clone出項目, 把這個項目安裝到項目目錄上.

      安裝完畢后. 我們進入到插件目錄

      cd ~/.vim/bundle/YouCompleteMe/
      ./install.py --clang-completer
      

      又是需要漫長的等待, 等他安裝好.

      在vimrc中配置YouCompleteMe:

      let g:ycm_key_list_select_completion = ['<Down>']
      let g:ycm_key_list_previous_completion = ['<Up>']
      let g:ycm_confirm_extra_conf=0 "關閉加載.ycm_extra_conf.py提示
      let g:ycm_min_num_of_chars_for_completion=2 " 從第2個鍵入字符就開始羅列匹配項
      let g:ycm_cache_omnifunc=0  " 禁止緩存匹配項,每次都重新生成匹配項
      let g:ycm_seed_identifiers_with_syntax=1    " 語法關鍵字補全
      " 在注釋輸入中也能補全
      let g:ycm_complete_in_comments = 1
      " 在字符串輸入中也能補全
      let g:ycm_complete_in_strings = 1
      "注釋和字符串中的文字也會被收入補全
      let g:ycm_collect_identifiers_from_comments_and_strings = 0
      let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
      
      nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
      nnoremap <leader>lo :lopen<CR> "open locationlist                                                                                                                      
      nnoremap <leader>lc :lclose<CR>   "close locationlist
      inoremap <leader><leader> <C-x><C-o>"
      inoremap <leader><leader> <C-x><C-o>
      nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
      

      我們開看看效果:

      完整配置文件如下:

      set nocompatible              " be iMproved, required
      filetype off                  " required
      
      " set the runtime path to include Vundle and initialize
      set rtp+=~/.vim/bundle/Vundle.vim
      call vundle#begin()
      " alternatively, pass a path where Vundle should install plugins
      " call vundle#begin('~/some/path/here')
      
      " let Vundle manage Vundle, required
      Plugin 'VundleVim/Vundle.vim'
      
      " nerdtree插件
      Plugin 'scrooloose/nerdtree'
      
      " tagbar
      Plugin 'majutsushi/tagbar'
      
      " auto pair
      Plugin 'jiangmiao/auto-pairs'
      
      " mini buffer
      Plugin 'minibufexpl.vim'
      
      " tag list
      Plugin 'taglist.vim'
      
      " nerd commit
      Plugin 'scrooloose/nerdcommenter'
      
      " PHP mannual
      Plugin 'alvan/vim-php-manual'
      
      " snippets mate
      Plugin 'MarcWeber/vim-addon-mw-utils'
      Plugin 'tomtom/tlib_vim'
      Plugin 'garbas/vim-snipmate'
      Plugin 'honza/vim-snippets'
      
      " markdown插件
      Plugin 'godlygeek/tabular'
      Plugin 'plasticboy/vim-markdown'
      
      " you complete me插件
      Plugin 'Valloric/YouCompleteMe'
      
      " All of your Plugins must be added before the following line
      call vundle#end()            " required
      filetype plugin indent on    " required
      " To ignore plugin indent changes, instead use:
      " filetype plugin on
      
      "  Brief help
      " :PluginList       - lists configured plugins
      " :PluginInstall    - installs plugins; append `!` to update or just
      " :PluginUpdate
      " :PluginSearch foo - searches for foo; append `!` to refresh local cache
      " :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
      
      " see :h vundle for more details or wiki for FAQ
      " Put your non-Plugin stuff after this line
      
      set modelines=0
      
      "設置更好的刪除
      set backspace=2
      
      syntax on "語法高亮
      
      "用淺色高亮當前行
      autocmd InsertLeave * se nocul
      autocmd InsertEnter * se cul
      
      set smartindent "智能對齊
      
      set autoindent "自動對齊
      
      set confirm "在處理未保存或只讀文件的時候,彈出確認框
      
      set tabstop=4 "tab鍵的寬度
      set softtabstop=4
      set shiftwidth=4 "統一縮進為4
      set expandtab "不要用空格替代制表符
      
      set number "顯示行號
      set history=50  "歷史紀錄數
      set hlsearch
      set incsearch "搜素高亮,搜索逐漸高亮
      
      set gdefault "行內替換
      set encoding=utf-8
      set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 "編碼設置
      
      colorscheme molokai
      
      set guifont=Menlo:h16:cANSI "設置字體
      set langmenu=zn_CN.UTF-8
      set helplang=cn  "語言設置
      
      set ruler "在編輯過程中,在右下角顯示光標位置的狀態行
      
      set laststatus=1  "總是顯示狀態行
      
      set showcmd "在狀態行顯示目前所執行的命令,未完成的指令片段也會顯示出來
      
      set scrolloff=3 "光標移動到buffer的頂部和底部時保持3行的距離
      set showmatch "高亮顯示對應的括號
      set matchtime=5 "對應括號高亮時間(單位是十分之一秒)
      
      set wildmenu  "增強模式中的命令行自動完成操作
      
      set linespace=2 "字符間插入的像素行數目
      set whichwrap=b,s,<,>,[,] "開啟normal 或visual模式下的backspace鍵空格鍵,左右方向鍵,insert或replace模式下的左方向鍵,右方向鍵的跳行功能
      
      filetype plugin indent on "分為三部分命令:file on,file plugin on,file indent on 分別是自動識別文件類型, 用用文件類型腳本,使用縮進定義文件
      
      
      syntax enable
      set foldenable  "允許折疊
      set cursorline "突出顯示當前行
      set magic  "設置魔術?神馬東東
      set ignorecase "搜索忽略大小寫
      filetype on "打開文件類型檢測功能
      set background=dark
      set t_Co=256   "256色
      set mouse=a  "允許鼠標
      "使用語法高亮定義代碼折疊
      set foldmethod=syntax
      ""打開文件是默認不折疊代碼
      set foldlevelstart=99"
      
      " nerdtree 配置
      let NERDTreeQuitOnOpen=1 "打開文件時關閉樹
      let NERDTreeShowBookmarks=1 "顯示書簽
      
      " taglist 配置
      let Tlist_Use_Right_Window=1 "taglist 顯示在右側 
      let Tlist_Exit_OnlyWindow=1 "taglist 只剩下一個窗口時,自動關閉
      let Tlist_File_Fold_Auto_Close=1
      
      " -- MiniBufferExplorer --   
      let g:miniBufExplMapWindowNavVim = 1  " 按下Ctrl+h/j/k/l,可以切換到當前窗口的上下左右窗口  
      let g:miniBufExplMapWindowNavArrows = 1  "按下Ctrl+箭頭,可以切換到當前窗口的上下左右窗口  
      let g:miniBufExplMapCTabSwitchBufs = 1 "啟用以下兩個功能:Ctrl+tab移到下一個buffer并在當前窗口打開;Ctrl+Shift+tab移到上一個buffer并在當前窗口打開;ubuntu好像不支持  
      let g:miniBufExplMapCTabSwitchWindows = 1 "  啟用以下兩個功能:Ctrl+tab移到下一個窗口;Ctrl+Shift+tab移到上一個窗口;ubuntu好像不支持  
      let g:miniBufExplModSelTarget = 1     " 不要在不可編輯內容的窗口(如TagList窗口)中打開選中的buffer
      
      " markdown 配置
      let g:vim_markdown_math = 1
      let g:vim_markdown_frontmatter = 1
      let g:vim_markdown_toml_frontmatter = 1
      let g:vim_markdown_json_frontmatter = 1
      
      " YouCompleteMe配置
      let g:ycm_key_list_select_completion = ['<Down>']
      let g:ycm_key_list_previous_completion = ['<Up>']
      let g:ycm_confirm_extra_conf=0 "關閉加載.ycm_extra_conf.py提示
      let g:ycm_min_num_of_chars_for_completion=2 " 從第2個鍵入字符就開始羅列匹配項
      let g:ycm_cache_omnifunc=0  " 禁止緩存匹配項,每次都重新生成匹配項
      let g:ycm_seed_identifiers_with_syntax=1    " 語法關鍵字補全
      " 在注釋輸入中也能補全
      let g:ycm_complete_in_comments = 1
      " 在字符串輸入中也能補全
      let g:ycm_complete_in_strings = 1
      "注釋和字符串中的文字也會被收入補全
      let g:ycm_collect_identifiers_from_comments_and_strings = 0
      let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
      
      let mapleader = ","
      map <leader>ne :NERDTreeToggle<CR>
      nmap <leader>tb :TagbarToggle<CR>
      nmap <leader>mmbe :MiniBufExplorer<CR>
      nmap <leader>mmbc :CMiniBufExplorer<CR>
      nmap <leader>mmbu :UMiniBufExplorer<CR>
      nmap <leader>mmbt :TMiniBufExplorer<CR>
      map <leader>tl :TlistToggle<cr>
      nnoremap <leader>ev :vsplit $MYVIMRC<cr>
      nnoremap <leader>sv :source $MYVIMRC<cr>
      nnoremap <leader>ma :set mouse=a<cr>
      nnoremap <leader>mu :set mouse=<cr>
      nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
      nnoremap <leader>lo :lopen<CR> "open locationlist                                                                                                                      
      nnoremap <leader>lc :lclose<CR>   "close locationlist
      inoremap <leader><leader> <C-x><C-o>"
      inoremap <leader><leader> <C-x><C-o>
      nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
      
      "對搜索的設置
      map ft :call Search_Word()<CR>:copen<CR>
      function Search_Word()
      let w = expand("<cword>") " 在當前光標位置抓詞
      execute "vimgrep " . w . " %"
      endfunction
      

      總結

      這就是我們配置好的vim了, 如果你去配置, 我相信你一定會遇到不少問題, 但是我想, 這總是一個很好的經歷, 它會培養你的耐心和毅力, 也會變得更加成熟.希望你也去試試哇!

      posted @ 2016-07-03 17:20  逝雪  閱讀(16026)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲精品黑人粗大精选| 亚洲人成电影网站色mp4| 亚洲国产日韩一区三区| 男人av无码天堂| 91久久偷偷做嫩草影院免费看| 国产三级国产精品久久成人| 最近中文国语字幕在线播放| 四虎精品国产精品亚洲精| 72种姿势欧美久久久久大黄蕉| 国产在线精品国偷产拍| 国产乱子伦视频在线播放| 日本亚洲一区二区精品久久| XXXXXHD亚洲日本HD| 亚洲精品久久久久国色天香| 国产极品美女高潮抽搐免费网站| 狠狠久久五月综合色和啪| 广东少妇大战黑人34厘米视频| 国产精品日韩中文字幕| 男人用嘴添女人私密视频| 日韩深夜免费在线观看| 亚洲欧美日韩综合一区二区 | 开心一区二区三区激情| 1区2区3区4区产品不卡码网站| 国产特级毛片AAAAAA视频| 泽州县| 亚洲春色在线视频| 日韩一区二区三区女优丝袜| 香港日本三级亚洲三级| 无码人妻斩一区二区三区| 女同在线观看亚洲国产精品| 国产精品久久香蕉免费播放| 性色在线视频精品| 亚洲色大成网站www在线| 日韩av一区二区三区在线| 色色97| 国产精品自拍三级在线观看 | 国产精品伦人视频免费看| 男人猛躁进女人免费播放| 99久久er热在这里只有精品99| 精品无码黑人又粗又大又长| 国产日韩一区二区四季|