mkdir -p ~/.vim/autoload ~/.vim/bundle && \ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
若是是新裝而且vimrc不存在,請用命令 vim ~/.vimrc新建該文件,並將下面的代碼粘貼到文件中。php
execute pathogen#infect() syntax on filetype plugin indent on
cd ~/.vim/bundle git clone https://github.com/scrooloose/nerdtree.git
Then reload vim, run :Helptags, and check out :help NERD_tree.txt.html
https://github.com/ervandew/supertab.git
http://vim.sourceforge.net/scripts/download_script.php?src_id=18153
* needs huge/large vim and linux cd $HOME/.vim mv [wherever]/gdbmgr.tar.gz . gunzip gdbmgr.tar.gz tar -xf gdbmgr.tar vi :helptags ~/.vim/doc :q
(參考自)http://linux.cn/article-3314-1.htmlpython
- 從Github下載vundle到本地:
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
- 配置vimrc文件:
set nocompatible " be iMproved filetype off " required! /** 從這行開始,vimrc配置 **/ set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' " My Bundles here: /* 插件配置格式 */ " " original repos on github (Github網站上非vim-scripts倉庫的插件,按下面格式填寫) Bundle 'tpope/vim-fugitive' Bundle 'Lokaltog/vim-easymotion' Bundle 'rstacruz/sparkup', {'rtp': 'vim/'} Bundle 'tpope/vim-rails.git' " vim-scripts repos (vim-scripts倉庫裏的,按下面格式填寫) Bundle 'L9' Bundle 'FuzzyFinder' " non github repos (非上面兩種狀況的,按下面格式填寫) Bundle 'git://git.wincent.com/command-t.git' " ... filetype plugin indent on " required! /** vimrc文件配置結束 **/ " /** vundle命令 **/ " 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 " " see :h vundle for more details or wiki for FAQ " NOTE: comments after Bundle command are not allowed.. PluginInstall 安裝已經配置的插件 PluginSearch 查找vim-scripts倉庫中的插件 PluginClean 清除配置文件中不存在的插件
打造python IDE須要的相關插件linux
Bundle 'scrooloose/nerdtree' Bundle 'davidhalter/jedi-vim' Bundle 'SuperTab'
$ vim -u NONE -N (啓動時不加載本身的vimrc,而且不進入兼容模式) c 與 d 都是刪除,c操做完成後會進入插入模式,而d會留在普通模式。 daw 刪除當前單詞(delete a word)。 nyy 複製n行,前面能夠加小寫字母,定義不一樣的緩衝區。 nyw 複製n個單詞,前面能夠加小定字母,定義不一樣的緩衝區。 y^ 和 y$ 從當前光標複製到行首或行尾。 [a]p 或 [a]P 粘貼指定剪切板中指定緩衝區到當前行下方或上方。 R 覆蓋模式。 J 合併當前行與下一行。 n+ 和 n- n爲數字,光標下移或上移n行。 nG 和 G n爲行號,光標移到指定行,無行號時(能夠理解爲無窮大),光標移至最後行。 . 重複上次修改。 u 與.命令執行相反的操做。 U 撤銷當前行的全部操做。 f{char}/t{char} 行內查找下一處指定字符出現的位置,若是找到,並將光標移至指定字符處。 F{char}/T{char} 行內查找上一處指定字符出現的位置,若是找到,並將光標移至指定字符處。 ; 重複查找上次f命令所查找的字符。 , 與;命令執行相反的操做。 / 文檔中向下查找匹配項。 ? 文檔中向上查找匹配項。 n 重複查找上次/命令所查找的匹配項。 N 與n命令執行相反的操做。 :[n,m ]s/target/replacement[/g] [n->m行內](行內)執行替換第一個匹配項[替換全部]。 :%s/target/replacement[/g] (文件內)執行替換第一個匹配項[替換全部]。 * 選中光標所在單詞。 & 重複執行:s命令;回退命令爲u。 qx{changes}q 執行一系列修改。 @x 重複執行qx{}q命令;回退命令爲u。 e filename 編輯名爲filename的文件。
C <=> c$ 從光標片刪至行尾,並進入插入模式。 s <=> cl 刪除當前字符,並進入插入模式。 S <=> ^c 刪除整行,並進入插入模式。 I <=> ^i 光標移至行首,並進入插入模式。 A <=> $a 光標移至行尾,並進入追加模式。 o <=> A<CR> 在當前行下新起一行,並進入插入模式。 O <=> ko <=> k$a<CR> 在當前行上新起一行,並進入插入模式。
一、多文件編輯模式 (1)argument list模式,就是在打開Vim編輯器時,攜帶多個文件路徑參數。 (2)buffer list模式,就是在進入Vim編輯器後,打開多個緩衝區進行編輯。 二、單一緩衝區打開多個文件 :files顯示目前打開了哪些文件 :n切換到下一個緩衝區內容 :N切換到上一個緩衝區內容 :2n切換到下下個緩衝區內容 :bn下一個緩衝區內容(buffer next) :bp上一個緩衝區內容(buffer previous) 三、多個緩衝區打開多個文件 :sp [filename]打開一個新的緩衝區,若是有filename則內容爲該文件,不然爲當前文件 Ctrl+w n新建一個緩衝區 Ctrl+w q退出光標所在的緩衝區 Ctrl+w j光標移動到下一緩衝區 Ctrl+w k光標移動到上一緩衝區 Ctrl+w l光標移動到右一緩衝區 Ctrl+w h光標移動到左一緩衝區 Ctrl+w v左右切割窗口新建緩衝區 Ctrl+w s上下切割窗口新建緩衝區 Ctrl+w o使光標所在緩衝區最大化,其餘緩衝區隱藏
下列是.vimrc文件的配置,第一次進入vim,執行:PluginInstall,會自動安裝所列插件,用vim打開的一python文件,再按F3,你就能夠看到一個基本的IDE了。同時定義了F5,F6來編譯運行c,c++,但其代碼提示尚未考慮。c++
set nocompatible "進入非兼容模式 set rtp+=~/.vim/bundle/vundle/ "vundle的安裝配置 call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' " 最基本的插件 Bundle 'davidhalter/jedi-vim' "python插件 Bundle 'SuperTab' "利用tab鍵進行補全 Bundle 'ctags.vim' "Ctags -R 生成標籤 Bundle 'taglist.vim' "函數、變量列表 Bundle 'winmanager' "窗口管理 filetype plugin indent on "代碼高亮須要的配置 " TagLIst settings. let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 " winManager settings. let g:winManagerWindowLayout='FileExplorer|TagList' " nmap wm :WMToggle<cr> " My Shortcut. map <f2> :Tlist<cr> map <f3> :WMToggle<cr> "F5編譯和運行C程序,F6編譯和運行C++程序 " 請注意,下述代碼在windows下使用會報錯 " 須要去掉./這兩個字符 " C的編譯和運行 map <F5> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" exec "!gcc % -o %<" exec "! ./%<" endfunc " C++的編譯和運行 map <F6> :call CompileRunGpp()<CR> func! CompileRunGpp() exec "w" exec "!g++ % -o %<" exec "! ./%<" endfunc set autowrite " Automatically save before commands like :next and :make set hidden " Hide buffers when they are abandoned set mouse=a " Enable mouse usage (all modes) set hls set shortmess=atI "啓動時不顯示幫助烏干達兒童提示 " Prefer spaces to tabs set tabstop=4 set shiftwidth=4 set expandtab set nu!
後來發現YCM是比較強大的代碼提示插件,試着配置了一下,感受不錯,如下是一些須要注意的地方:git
"插件部分換成下面的,YCM已經集成了SuperTab,語法檢查python能夠用 davidhalter/jedi 。 Bundle 'Valloric/YouCompleteMe' Bundle 'ctags.vim' Bundle 'taglist.vim' Bundle 'winmanager'
------------------------------------------------------------(分割線,內容已完,下面是一些備忘)
clang++ --std=c++0x -stdlib=libc++ new_feature.cppgithub