国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

Vim配置及說明——IDE編程環境

2024-06-28 13:27:03
字體:
來源:轉載
供稿:網友
Vim配置及說明——IDE編程環境Vim配置及說明——IDE編程環境
  • Vim配置及說明——IDE編程環境
    • 1、基本及字體
    • 2、插件管理
    • 3、主題風格
    • 4、窗口設置
    • 5、目錄樹導航
    • 6、標簽導航
    • 7、taglist
    • 8、多文檔編輯
    • 9、文件搜索
    • 10、美化狀態欄
    • 11、括號匹配高亮
    • 12、可視化縮進
    • 13、標志無效空格
    • 14、快速移動
    • 15、括號匹配跳轉
    • 16、自動補全
    • 17、宏定義補全
    • 18、快速加減注釋
    • 19、快速加環繞符
    • 20、自動括號補全
    • 21、代碼對齊
    • 22、靜態代碼分析
    • 23、快速跳轉到TODO列表
    • 24、維基百科
    • 25、多光標批量操作
    • 26、python語法高亮
    • 27、其他說明

想起幾年前第一次在linux上面用vim(當時剛從Windows轉到Linux下編程),第一印象就是怎么這么麻煩,界面還這么丑,各種不方便,對著vimtutor練習了一下午。當時滿腦子懷念Window下的VS的各種方便,后來搜到吳垠的《手把手教你把Vim改裝成一個IDE編程環境》,讓我頓時欣喜了一番,感覺看到了曙光,又對著他的教程搗鼓折騰了幾天后感覺vim好用了些,但還是不盡人意,感覺沒VS方便,尤其是代碼的自動補全方面,而且很多命令都要記,隔一段時間不用就忘記了。

但是經過不斷搗鼓折騰,現在我再也離不開vim了,在Windows下我也用vim。只有堅持使用一段時間vim,選好自己喜歡的插件,你一定會對vim愛不釋手的。言歸正傳,下面是我的配置。

錄了張使用YCM和ultisnips的補全效果圖,以及使用sytastic進行靜態代碼錯誤標示

targbar及easymotion、nerdcommenter效果圖

1、基本及字體

對于用慣了Windows下ctrl+s一鍵保存的人是不是對與vim中在命令行下:w的保存方式很不習慣?

在.vimrc中加入如下配置,你可以使用/s一鍵保存

" /s 一鍵保存func! SaveFile()    exec "w"endfuncmap  <leader>s :call SaveFile()<CR>imap <leader>s <ESC>:call SaveFile()<CR>vmap <leader>s <ESC>:call SaveFile()<CR>

安裝字體Monaco

默認字體不好看,挑個自己喜歡的,前提是你得先安裝好該字體。我喜歡Monaco字體,美觀,對中文支持也很好。

下面是找到的安裝過程,親自驗證。

  • 首先在https://github.com/cstrap/monaco-font這個網址下載Monaco字體
  • 使用命令 unzip monaco-font-master解壓壓縮包
  • 切換到monaco-font-master目錄中,修改腳本文件權限chmod +x install-font.sh
  • 執行腳本文件sudo ./install-font.sh
2、插件管理

插件[gmarik/vundle]

推薦等級:★★★★★

vim 的各插件打包文檔中通常也包含doc、plugin子目錄,用戶將插件打包文檔中的對應子目錄拷貝至.vim/目錄中即可完成安裝,但插件一多將混亂不堪,會出現名字沖突,卸載麻煩(有時分不清那個文件對應哪個插件,自己也不清楚到底安裝了哪些插件)等問題。

vundle可以幫我們解決這些問題。

通過使用vundle來安裝新的插件也及其方便:

  1. 可以去GIT,也可以去Vim Scripts查找并選好你想要的插件。
  2. 在VIM的配置文件中寫一句 Bundle plugin_name;
  3. 執行一下Vundle的初始化命令,插件就裝好了;
    • 升級和卸載也是同樣的簡單;

Bundle 支持的格式有三種:

第一種是一個普通的字符串,就是vim 插件頁面里左上角的插件名字,如果插件名有空格,使用 - 替換。

第二種是github帳號/項目名。

第三種就是git repository

具體可查看vbundle的幫助文檔。

3、主題風格

一套好的配色方案絕對會影響你的編碼效率,vim 內置了 10 多種配色方案供你選擇

GUI 下,可以通過菜單(Edit -> Color Scheme)試用不同方案,字符模式下,需要你手工調整配置信息,再重啟 vim 查看效果(csExplorer 插件,可在字符模式下不用重啟即可查看效果)。 還不滿意,可以在VIM Color Scheme Test - C這里選擇自己喜歡的配色方案

目前用得最多的是下面三種配色方案:

  • solarized推薦等級:★★★★★
  • molokai推薦等級:★★★★★
  • phd推薦等級:★★★★☆

我的配置如下:

" 主題 solarizedBundle 'altercation/vim-colors-solarized'"let g:solarized_termcolors=256let g:solarized_termtrans=1let g:solarized_contrast="normal"let g:solarized_visibility="normal"" 主題 molokaiBundle 'tomasr/molokai'let g:molokai_original = 1" 配色方案set background=darkset t_Co=256if g:isGUI    colorscheme solarized    "colorscheme molokai    "colorscheme phdelse    "colorscheme solarized    colorscheme molokai    "colorscheme phdendif

其中,不同主題都有暗/亮色系之分,這樣三種主題六種風格,久不久換一換,給你不一樣的心情

4、窗口設置

編輯器界面展示的應全是代碼,不應該有工具條、菜單、滾動條浪費空間的元素,配置如下:

if g:isGUI      " 使用GUI界面時的設置    set guioptions+=c        " 使用字符提示框    set guioptions-=m        " 隱藏菜單欄    "set guioptions-=T        " 隱藏工具欄    set guioptions-=L        " 隱藏左側滾動條    "set guioptions-=r        " 隱藏右側滾動條    set guioptions-=b        " 隱藏底部滾動條    "set showtabline=0       " 隱藏Tab欄    set cursorline           " 突出顯示當前行endif

我們把 vim 弄成全屏模式。vim 自身無法實現全屏,必須借助第三方工具wmctrl, 一個控制窗口XYZ坐標、窗口尺寸的命令行工具。先自行安裝wmctrl(sudo apt-get install wmctrl) ,再在.vimrc中增加如下信息:

    fun! ToggleFullscreen()" 將外部命令 wmctrl 控制窗口最大化的命令行參數封裝成一個 vim 的函數        call system("wmctrl -ir " . v:windowid . " -b toggle,fullscreen")    endf    map <silent> <F11> :call ToggleFullscreen()<CR>" 全屏開/關快捷鍵    autocmd VimEnter * call ToggleFullscreen()" 啟動 vim 時自動全屏
5、目錄樹導航

插件:vim-scripts/The-NERD-tree

推薦等級:★★★★★

nerd-tree插件可以查看文件列表,要打開哪個文件,光標選中后回車即可在新 buffer 中打開。

配置如下:

"目錄文件導航Bundle 'scrooloose/nerdtree'" /nt                 打開nerdree窗口,在左側欄顯示nmap <leader>nt :NERDTree<CR>let NERDTreeHighlightCursorline=1let NERDTreeIgnore=[ '/.pyc$', '/.pyo$', '/.obj$', '/.o$', '/.so$', '/.egg$', '^/.git$', '^/.svn$', '^/.hg$' ]let g:netrw_home='~/bak'"close vim if the only window left open is a NERDTreeautocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "PRimary") | q | end
6、標簽導航

majutsushi/tagbar

推薦等級:★★★★★

  • tagbar按作用域歸類不同的標簽。按名字空間 n_foo、類 Foo 進行歸類,在內部有聲明、有定義;
  • 顯示標簽類型。名字空間、類、函數等等;
  • 顯示完整函數原型;
  • 圖形化顯示共有成員(+)、私有成員(-)、保護成員(#);

配置如下:

"標簽導航,緯度和taglist不同Bundle 'majutsushi/tagbar'nmap <leader>tb :TagbarToggle<CR>  " /tb 打開tagbar窗口let g:tagbar_autofocus = 1
7、taglist

vim-scripts/taglist.vim

推薦等級:★★★★☆

在vimrc中配置如下:

Bundle 'vim-scripts/taglist.vim'" /tl                 打開Taglist/TxtBrowser窗口,在右側欄顯示nmap <leader>tl :Tlist<CR><c-l>" :Tlist              調用TagListlet Tlist_Show_One_File        = 1             " 只顯示當前文件的tagslet Tlist_Exit_OnlyWindow      = 1             " 如果Taglist窗口是最后一個窗口則退出Vimlet Tlist_Use_Right_Window     = 1             " 在右側窗口中顯示let Tlist_File_Fold_Auto_Close = 1             " 自動折疊"let Tlist_Sort_Type = "name"                   " items in tags sorted by name
8、多文檔編輯

插件fholgado/minibufexpl.vim

推薦等級:★★★★★

vim 的多文檔編輯涉及三個概念:buffer、window、tab,這三個事物與我們常規理 解意義大相徑庭。vim 把加載進內存的文件叫做 buffer,buffer 不一定可見;若要 buffer 要可見,則必須通過 window 作為載體呈現;同個看面上的多個 window 組合成 一個 tab。vim 中每打開一個文件,vim 就對應創建一個 buffer,多個文件就有多個 buffer,但默認你只看得到最后 buffer 對應的 window

vimrc中配置如下:

Bundle 'fholgado/minibufexpl.vim'" 多文件切換,也可使用鼠標雙擊相應文件名進行切換let g:miniBufExplMapWindowNavVim    = 1let g:miniBufExplMapWindowNavArrows = 1let g:miniBufExplMapCTabSwitchBufs  = 1let g:miniBufExplModSelTarget       = 1"解決FileExplorer窗口變小問題let g:miniBufExplForceSyntaxEnable = 1let g:miniBufExplorerMoreThanOne=2let g:miniBufExplCycleArround=1" buffer 切換快捷鍵,默認方向鍵左右可以切換buffermap <C-Tab> :MBEbn<cr>map <C-S-Tab> :MBEbp<cr>
9、文件搜索

插件:kien/ctrlp.vim

推薦等級:★★★★☆

CtrlP會沿著vim打開的目錄一直向上查找類似.git/.svn等這樣的項目管理的目錄,如果找到則將這個作為項目的根目錄 vimrc中配置如下:

"for file search ctrlp, 文件搜索Bundle 'kien/ctrlp.vim'" 打開ctrlp搜索let g:ctrlp_map = '<leader>ff'let g:ctrlp_cmd = 'CtrlP'" 相當于mru功能,show recently opened filesmap <leader>fp :CtrlPMRU<CR>"set wildignore+=*/tmp/*,*.so,*.swp,*.zip     " MacOSX/Linux"let g:ctrlp_custom_ignore = {    / 'dir':  '/v[//]/.(git|hg|svn|rvm)$',    / 'file': '/v/.(exe|so|dll|zip|tar|tar.gz)$',    / }"/ 'link': 'SOME_BAD_SYMBOLIC_LINKS',let g:ctrlp_working_path_mode=0let g:ctrlp_match_window_bottom=1let g:ctrlp_max_height=15let g:ctrlp_match_window_reversed=0let g:ctrlp_mruf_max=500let g:ctrlp_follow_symlinks=1
10、美化狀態欄

插件:Lokaltog/vim-powerline

推薦等級:★★★★☆

狀態欄增強展示,通過本插件,增強后的狀態欄,不僅界面漂亮多了,而且多 了好些輔助信息(所在函數名、文件編碼格式、文件類型)。 vimrc中配置如下:

Bundle 'Lokaltog/vim-powerline'"if want to use fancy,need to add font patch -> git clone git://gist.github.com/1630581.git ~/.fonts/ttf-dejavu-powerline"let g:Powerline_symbols = 'fancy'let g:Powerline_symbols = 'unicode'
11、括號匹配高亮

插件:kien/rainbow_parentheses.vim

推薦等級:★★★★☆

括號顯示增強 vimrc中配置如下:

Bundle 'kien/rainbow_parentheses.vim'let g:rbpt_colorpairs = [    / ['brown',       'RoyalBlue3'],    / ['Darkblue',    'SeaGreen3'],    / ['darkgray',    'DarkOrchid3'],    / ['darkgreen',   'firebrick3'],    / ['darkcyan',    'RoyalBlue3'],    / ['darkred',     'SeaGreen3'],    / ['darkmagenta', 'DarkOrchid3'],    / ['brown',       'firebrick3'],    / ['gray',        'RoyalBlue3'],    / ['black',       'SeaGreen3'],    / ['darkmagenta', 'DarkOrchid3'],    / ['Darkblue',    'firebrick3'],    / ['darkgreen',   'RoyalBlue3'],    / ['darkcyan',    'SeaGreen3'],    / ['darkred',     'DarkOrchid3'],    / ['red',         'firebrick3'],    / ]let g:rbpt_max = 40let g:rbpt_loadcmd_toggle = 0
12、可視化縮進

插件:nathanaelkane/vim-indent-guides

推薦等級:★★★★☆

可視化的方式能將相同縮進的代碼關聯起來。 顯可視化縮進,示對齊線。 vimrc中配置如下:

Bundle 'nathanaelkane/vim-indent-guides'let g:indent_guides_enable_on_vim_startup = 0  " 默認關閉let g:indent_guides_guide_size            = 1  " 指定對齊線的尺寸let g:indent_guides_start_level   = 2  " 從第二層開始可視化顯示縮進" /ig 打開/關閉 vim-indent-guides
13、標志無效空格

bronson/vim-trailing-whitespace

推薦等級:★★★★★

將代碼行最后無效的空格標紅

vimrc中配置如下:

"for show no user whitespacesBundle 'bronson/vim-trailing-whitespace'map <leader><space> :FixWhitespace<cr>" /+space去掉末尾空格
14、快速移動

插件:Lokaltog/vim-easymotion

推薦等級:★★★★★

效率提升殺手锏,跳轉到光標后任意位置

vimrc中配置如下:

"更高效的移動 // + w/f/lBundle 'Lokaltog/vim-easymotion'
15、括號匹配跳轉

插件:vim-scripts/matchit.zip

推薦等級:★★★☆☆

匹配成對的標簽,在()、""、甚至HTML標簽之間快速跳轉,快捷鍵為% vimrc中配置如下:

Bundle 'vim-scripts/matchit.zip'
16、自動補全

插件:Valloric/YouCompleteMe

推薦等級:★★★★★

強烈推薦 Ubuntu13.04配置YCM可參考這里

17、宏定義補全

插件:SirVer/ultisnips

推薦等級:★★★★★

配合YCM使用,雙劍合璧,方便快捷,強烈推薦

開發時,我經常要輸入相同的代碼片斷,比如 if-else、switch 語句,ultisnips可以快速插入我們自定義的代碼片段,實現高效補全。 UltiSnips 預定義了幾十種語言常用的代碼模板,位于~/.vim/bundle/UltiSnips/UltiSnips/,UltiSnips 有一套自己的代碼模板語法規則。 vimrc中配置如下:

"快速插入代碼片段Bundle 'SirVer/ultisnips'let g:UltiSnipsExpandTrigger = "<tab>"let g:UltiSnipsJumpForwardTrigger = "<tab>"let g:UltiSnipsJumpBackwardTrigger="<s-tab>""定義存放代碼片段的文件夾 .vim/snippets下,使用自定義和默認的,將會的到全局,有沖突的會提示let g:UltiSnipsSnippetDirectories=["snippets", "bundle/ultisnips/UltiSnips"]
18、快速加減注釋

插件:scrooloose/nerdcommenter

推薦等級:★★★★★

快速批量注釋,方便好用

常用操作:

  • <leader>cc,注釋當前選中文本,如果選中的是整行則在每行首添加 //,如果選中

一行的部分內容則在選中部分前后添加分別 /、/;

  • <leader>cu,取消選中文本塊的注釋。

更多內容見幫助文檔。

Bundle 'scrooloose/nerdcommenter'let NERDSpaceDelims = 1
19、快速加環繞符

tpope/vim-surround詳情見幫助文檔 配合使用增強版命令重復 [https://github.com/tpope/vim-repeat|pope/vim-repeat ] vimrc中配置如下:

Bundle 'tpope/vim-surround'"for repeat -> enhance surround.vim, . to repeat commandBundle 'tpope/vim-repeat'
20、自動括號補全

插件:Raimondi/delimitMate

推薦等級:★★★★☆

vimrc中配置如下:

"自動補全單引號,雙引號等Bundle 'Raimondi/delimitMate'" for python docstring ",優化輸入au FileType python let b:delimitMate_nesting_quotes = ['"']
21、代碼對齊

插件:godlygeek/tabular

推薦等級:★★★★★

vimrc中配置如下:

"for code alignmentBundle 'godlygeek/tabular'" /bb                 按=號對齊代碼 [Tabular插件]nmap <leader>bb :Tab /=<CR>" /bn                 自定義對齊    [Tabular插件]nmap <leader>bn :Tab /
22、靜態代碼分析

插件:scrooloose/syntastic

推薦等級:★★★★☆

syntastic是一款支持多語言的實時語法檢查插件。在 syntastic 的作用下,編碼中、編譯前,所有語法錯誤都將被抓出來并 呈現給你。

vimrc中配置如下:

" 使用pyflakes,速度比pylint快Bundle 'scrooloose/syntastic'let g:syntastic_error_symbol = '?'"set error or warning signslet g:syntastic_warning_symbol = '?'let g:syntastic_check_on_open=1let g:syntastic_enable_highlighting = 0"let g:syntastic_python_checker="flake8,pyflakes,pep8,pylint"let g:syntastic_python_checkers=['pyflakes']"highlight SyntasticErrorSign guifg=white guibg=blacklet g:syntastic_cpp_include_dirs = ['/usr/include/']let g:syntastic_cpp_remove_include_errors = 1let g:syntastic_cpp_check_header = 1let g:syntastic_cpp_compiler = 'clang++'let g:syntastic_cpp_compiler_options = '-std=c++11 -stdlib=libstdc++'let g:syntastic_enable_balloons = 1"whether to show balloons
23、快速跳轉到TODO列表

插件:vim-scripts/TaskList.vim

推薦等級:★★★★☆

查看并快速跳轉到代碼中的TODO列表。重構代碼時一般通讀,標記修改位置,非常實用

vimrc中配置如下:

Bundle 'vim-scripts/TaskList.vim'map <leader>td <Plug>TaskList
24、維基百科

插件:vim-scripts/vimwiki

推薦等級:★★★★☆

vim下的維基百科,我的博客就是用vimwiki寫的。

vimrc中配置如下:

Bundle 'vim-scripts/vimwiki'let g:vimwiki_w32_dir_enc     = 'utf-8' " 設置編碼let g:vimwiki_use_mouse       = 1       " 使用鼠標映射let g:vimwiki_valid_html_tags = 'a,img,b,i,s,u,sub,sup,br,hr,div,del,code,red,center,left,right,h1,h2,h3,h4,h5,h6,pre,script,style'                                        " 聲明可以在wiki里面使用的HTML標簽" 對中文用戶來說,我們并不怎么需要駝峰英文成為維基詞條let g:vimwiki_camel_case = 0let blog = {}if g:isWIN    if g:atCompany        let blog.path          = 'D:/Files/Files/mysite/wiki/'        let blog.path_html     = 'D:/Files/Files/mysite/html/'        let blog.template_path = 'D:/Files/Files/mysite/templates/'        let blog.nested_syntaxes = {'python': 'python', 'c++': 'cpp'}    else        let blog.path          = 'D:/Files/mysite/wiki/'        let blog.path_html     = 'D:/Files/mysite/html/'        let blog.template_path = 'D:/Files/mysite/templates/'        let blog.nested_syntaxes = {'python': 'python', 'c++': 'cpp'}    endifelse    let blog.path          = '~/mysite/wiki/'    let blog.path_html     = '~/mysite/html/'    let blog.template_path = '~/mysite/templates/'endiflet blog.template_default  = 'site'let blog.template_ext      = '.html'let blog.auto_export       = 1let g:vimwiki_list = [blog]
25、多光標批量操作

插件:terryma/vim-multiple-cursors

推薦等級:★★★☆☆

vimrc中配置如下:

"for mutil cursorBundle 'terryma/vim-multiple-cursors'let g:multi_cursor_use_default_mapping=0" Default mappinglet g:multi_cursor_next_key='<C-m>'let g:multi_cursor_prev_key='<C-p>'let g:multi_cursor_skip_key='<C-x>'let g:multi_cursor_quit_key='<Esc>'
26、python語法高亮
"python syntax highlightBundle 'hdima/python-syntax'let python_highlight_all = 1
27、其他說明

在我的vimrc中使用了ctags,需要安裝

sudo apt-get install ctags


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大悟县| 太白县| 大冶市| 苍南县| 甘德县| 临澧县| 东阳市| 柯坪县| 怀远县| 鄂州市| 黑水县| 惠水县| 吴桥县| 拉孜县| 喜德县| 来凤县| 韶山市| 全椒县| 青岛市| 体育| 剑阁县| 苏尼特左旗| 上虞市| 洞头县| 县级市| 林甸县| 金寨县| 抚顺县| 铜山县| 沽源县| 黎城县| 福贡县| 泸州市| 大悟县| 沈阳市| 宝丰县| 平果县| 象山县| 潜江市| 嵊泗县| 蒲江县|