<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] 參考:https://harttle.land/2015/07/18/vim-cpp.html 配色插件:https://vimjc.com/vim-color-schemes.html#1-acme-colors ## 安裝 vim-plug 使用 vim-plug 管理插件, 快捷安裝vim-plug ``` mkdir ~/.vim/autoload/ cd ~/.vim/autoload/ wget https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ``` ### vim-plug配置介紹 使用vim-plug安裝vim插件的方法與另外一個著名的[vim插件管理器Vundle](https://vimjc.com/vim-plugin-manager.html)非常相似,只需要在vim配置文件`~/.vimrc`增加以`call plug#begin(PLUGIN_DIRECTORY)`開始,并以`plug#end()`結束的配置段即可。 下面是一個典型的vim-plug的配置實例,使用了多種vim-plug相關的配置形式。 ``` call plug#begin('~/.vim/plugged') Plug 'junegunn/vim-easy-align' Plug 'https://github.com/junegunn/vim-github-dashboard.git' Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'tpope/vim-fireplace', { 'for': 'clojure' } Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plug '~/my-prototype-plugin' call plug#end() ``` 參數解釋: `call plug#begin('~/.vim/plugged')`標識vim-plug配置的開始并顯式指定vim插件的存放路徑為*~/.vim/plugged*; `Plug 'junegunn/vim-easy-align'`使用縮寫形式指定了插件在github的地址 ([https://github.com/junegunn/vim-easy-align](https://vimjc.com/[https://github.com/junegunn/vim-easy-align)); `Plug 'https://github.com/junegunn/vim-github-dashboard.git'`則用完整的URL指定插件在github的位置; `Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'`用 | 將兩個vim插件寫在同一行配置中; `Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }`使用**按需加載**,表明只有在`NERDTreeToggle`命令被調用時, 對應的插件才會被加載; `Plug 'tpope/vim-fireplace', { 'for': 'clojure' }`使用**按需加載**,表明只有編輯*clojure*類型的文件時該插件才會被打開; `Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }`顯式指定使用YCM-Generator插件的*stable*分支; `Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }`指定插件所用git標簽,rtp描述了包含vim插件的子目錄; `Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }`用**dir**選項單獨指定了該插件存放的目錄,**do**選項用于 Post-update hook,指定在安裝或者更新完插件后所需要執行的額外操作; `Plug '~/my-prototype-plugin'`表示不用github托管的本地vim插件; `call plug#end()`用于標識vim-plug配置的結束。 ### 使用vim-plug安裝vim插件 在Vim命令行模式下,使用命令`:PlugInstall`可安裝vim配置文件中所有配置的vim插件; ``` $ vim :PlugInstall ``` 指定安裝某一個或某幾個vim插件。 ``` $ vim :PlugInstall [name ...] ``` 查看vim插件的當前狀態: ``` $ vim :PlugStatus ``` 安裝或更新對應vim插件: ``` $ vim :PlugUpdate [name ...] ``` 而vim-plug本身的更新則使用命令`:PlugUpgrade`。 ``` $ vim :PlugUpgrade ``` vim-plug的命令列表如下所示。 | 命令 | 功能描述 | | --- | --- | | `PlugInstall [name ...] [#threads]` | 安裝插件 | | `PlugUpdate [name ...] [#threads]` | 安裝或更新vim插件 | | `PlugClean[!]` | 卸裝未使用的目錄 (bang version will clean without prompt) | | `PlugUpgrade` | 更新vim-plug自身 | | `PlugStatus` | 查看vim插件的狀態 | | `PlugDiff` | 對比上次PlugUpdate的更改 (Examine changes from the previous update and the pending changes) | | `PlugSnapshot[!] [output path]` | 保存當前插件的鏡像副本到指定目錄 (Generate script for restoring the current snapshot of the plugins) | ## 安裝C++IDE所需的vim插件 ### 符號索引Universal CTags 使用符號索引插件 ctags 以及 tags 異步生成工具[vim-gutentags](https://github.com/ludovicchabant/vim-gutentags): ``` Plug 'universal-ctags/ctags' Plug 'ludovicchabant/vim-gutentags' " gutentags 搜索工程目錄的標志,碰到這些文件/目錄名就停止向上一級目錄遞歸 let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project'] " 所生成的數據文件的名稱 let g:gutentags_ctags_tagfile = '.tags' " 將自動生成的 tags 文件全部放入 ~/.cache/tags 目錄中,避免污染工程目錄 let s:vim_tags = expand('~/.cache/tags') let g:gutentags_cache_dir = s:vim_tags " 配置 ctags 的參數 let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q'] let g:gutentags_ctags_extra_args += ['--c++-kinds=+px'] let g:gutentags_ctags_extra_args += ['--c-kinds=+px'] " 檢測 ~/.cache/tags 不存在就新建 if !isdirectory(s:vim_tags) silent! call mkdir(s:vim_tags, 'p') endif if !executable('ctags') let g:gutentags_dont_load = 1 endif ``` 如果一個文件沒有托管在 .git/.svn 中,gutentags 找不到工程目錄的話,就不會為該野文件生成 tags,這也很合理。想要避免的話,你可以在你的野文件目錄中放一個名字為 .root 的空白文件,主動告訴 gutentags 這里就是工程目錄。 ### 編譯運行AsyncRun ``` Plug 'skywind3000/asyncrun.vim' " asyncrun 搜索工程目錄的標志,碰到這些文件/目錄名就停止向上一級目錄遞歸。 " 如果遞歸到根目錄還沒找到,那么文件所在目錄就被當作項目目錄。 let g:asyncrun_rootmarks = ['.svn', '.git', '.root', '_darcs', 'build.xml'] " 自動打開 quickfix window ,高度為 6 let g:asyncrun_open = 6 " 任務結束時候響鈴提醒 let g:asyncrun_bell = 1 " 設置 F10 打開/關閉 Quickfix 窗口 nnoremap <F10> :call asyncrun#quickfix_toggle(6)<cr> " 設置 F7 從工程根目錄編譯整個工程 nnoremap <silent> <F7> :AsyncRun -cwd=<root> make <cr> ``` ### 代碼檢查ALE ALE(Asynchronous Lint Engine)支持多種語言的各種代碼分析器,如 gcc、cppcheck 等,但需要另行安裝并放入 PATH。ALE 能在你修改了文本后自動調用這些 linter 來分析最新代碼,然后將各種 linter 的結果進行匯總并顯示再界面上。 ``` Plug 'w0rp/ale' let g:ale_linters_explicit = 1 let g:ale_linters = { \ 'csh': ['shell'], \ 'zsh': ['shell'], \ 'go': ['gofmt', 'golint'], \ 'python': ['flake8', 'mypy', 'pylint'], \ 'c': ['gcc', 'cppcheck'], \ 'cpp': ['gcc', 'cppcheck'], \ 'text': [], \} let g:ale_completion_delay = 500 let g:ale_echo_delay = 20 let g:ale_lint_delay = 500 let g:ale_echo_msg_format = '[%linter%] %code: %%s' let g:ale_lint_on_text_changed = 'normal' let g:ale_lint_on_insert_leave = 1 let g:airline#extensions#ale#enabled = 1 let g:ale_c_gcc_options = '-Wall -O2 -std=c99' let g:ale_cpp_gcc_options = '-Wall -O2 -std=c++11' let g:ale_c_cppcheck_options = '' let g:ale_cpp_cppcheck_options = '' ``` ### 修改比較vim-signify ``` Plug 'mhinz/vim-signify' let g:signify_vcs_list = [ 'git' ] let g:signify_sign_show_text = 1 ``` ### 語法高亮vim-cpp-enhanced-highlight ``` Plug 'octol/vim-cpp-enhanced-highlight' let c_no_curly_error = 1 let g:cpp_class_scope_highlight = 1 let g:cpp_member_variable_highlight = 1 let g:cpp_class_decl_highlight = 1 let g:cpp_posix_standard = 1 let g:cpp_experimental_simple_template_highlight = 1 let g:cpp_experimental_template_highlight = 1 let g:cpp_concepts_highlight = 1 let g:cpp_no_function_highlight = 1 ``` ### 編輯輔助vim-unimpaired ``` Plug 'tpope/vim-unimpaired' ``` ### 代碼補全YouCompleteMe ``` Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --go-completer' } let g:ycm_global_ycm_extra_conf='~/.vim/plugged/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py' let g:ycm_add_preview_to_completeopt = 0 let g:ycm_show_diagnostics_ui = 0 let g:ycm_server_log_level = 'info' let g:ycm_min_num_identifier_candidate_chars = 2 let g:ycm_collect_identifiers_from_comments_and_strings = 1 let g:ycm_complete_in_strings=1 let g:ycm_key_invoke_completion = '<c-z>' " 使用 Ctrl+Z 主動觸發語義補全 let g:ycm_seed_identifiers_with_syntax=1 " 語法關鍵字補全 let g:ycm_confirm_extra_conf=0 " 打開vim時不再詢問是否加載ycm_extra_conf.py配置 noremap <c-z> <NOP> set completeopt=menu,menuone " 修改補全列表配色 highlight PMenu ctermfg=0 ctermbg=242 guifg=black guibg=darkgrey highlight PMenuSel ctermfg=242 ctermbg=8 guifg=darkgrey guibg=black " 對指定源文件,輸入兩個字母后即觸發語義補全 let g:ycm_semantic_triggers = { \ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'], \ 'cs,lua,javascript': ['re!\w{2}'], \ } let g:ycm_filetype_whitelist = { \ "c":1, \ "cpp":1, \ "go":1, \ "python":1, \ "sh":1, \ "zsh":1, \ } let g:ycm_filetype_blacklist = { \ 'markdown' : 1, \ 'text' : 1, \ 'pandoc' : 1, \ 'infolog' : 1, \} ``` ### 參數提示echodoc 寫 C/C++ 時函數忘了可以用上面的 YCM 補全,若是參數忘記了則可以使用 echodoc 插件。當用 YCM 的 tab 補全了一個函數名后,只要輸入左括號,下面命令行就會顯示出該函數的參數信息,并且隨著光標移動高亮出當前參數位置。 ``` Plug 'Shougo/echodoc.vim' set noshowmode ``` ### 函數列表LeaderF 這里定義了 CTRL+P 在當前項目目錄打開文件搜索,CTRL+N 打開 MRU 搜索,ALT+P 打開函數搜索,ALT+N 打開 Buffer 搜索,ALT+M 打開 Tag 搜索: ``` Plug 'Yggdroot/LeaderF', { 'do': './install.sh' } let g:Lf_ShortcutF = '<c-p>' let g:Lf_ShortcutB = '<m-n>' noremap <c-n> :LeaderfMru<cr> noremap <m-p> :LeaderfFunction!<cr> noremap <m-n> :LeaderfBuffer<cr> noremap <m-m> :LeaderfTag<cr> let g:Lf_StlSeparator = { 'left': '', 'right': '', 'font': '' } let g:Lf_RootMarkers = ['.project', '.root', '.svn', '.git'] let g:Lf_WorkingDirectoryMode = 'Ac' let g:Lf_WindowHeight = 0.30 let g:Lf_CacheDirectory = expand('~/.vim/cache') let g:Lf_ShowRelativePath = 0 let g:Lf_HideHelp = 1 let g:Lf_StlColorscheme = 'powerline' let g:Lf_PreviewResult = {'Function':0, 'BufTag':0} ``` ### 文件瀏覽vim-dirvish 頭文件和源文件之間可以使用`:A`命令快速切換,其它可以折騰下 dirvish。 ``` Plug 'vim-scripts/a.vim' Plug 'justinmk/vim-dirvish' ``` ### 其它 ``` set autoindent " Indent according to previous line. set expandtab " Use spaces instead of tabs. set softtabstop =4 " Tab key indents by 4 spaces. set shiftwidth =4 " >> indents by 4 spaces. set shiftround " >> indents to next multiple of 'shiftwidth'. set hidden " Switch between buffers without having to save first. set display =lastline " Show as much as possible of the last line. set ttyfast " Faster redrawing. set lazyredraw " Only redraw when necessary. set splitbelow " Open new windows below the current window. set splitright " Open new windows right of the current window. set cursorline " Find the current line quickly. set wrapscan " Searches wrap around end-of-file. set report =0 " Always report changed lines. set synmaxcol =120 " Only highlight the first 200 columns. set list " Show non-printable characters. if has('multi_byte') && &encoding ==# 'utf-8' let &listchars = 'tab:? ,extends:?,precedes:?,nbsp:±' else let &listchars = 'tab:> ,extends:>,precedes:<,nbsp:.' endif " Put all temporary files under the same directory. let s:vim_backup = expand("$HOME/.vim/files/backup/") if !isdirectory(s:vim_backup) silent! call mkdir(s:vim_backup, 'p') endif let s:vim_swap = expand("$HOME/.vim/files/swap/") if !isdirectory(s:vim_swap) silent! call mkdir(s:vim_swap, 'p') endif let s:vim_undo = expand("$HOME/.vim/files/undo/") if !isdirectory(s:vim_undo) silent! call mkdir(s:vim_undo, 'p') endif let s:vim_info = expand("$HOME/.vim/files/info/") if !isdirectory(s:vim_info) silent! call mkdir(s:vim_info, 'p') endif set backup set backupdir =$HOME/.vim/files/backup/ set backupext =-vimbackup set backupskip = set directory =$HOME/.vim/files/swap/ set updatecount =100 set undofile set undodir =$HOME/.vim/files/undo/ set viminfo ='100,n$HOME/.vim/files/info/viminfo ``` 最后在Vim命令行模式下,使用命令`:PlugInstall`安裝vim配置文件中所有配置的vim插件 ``` $ vim :PlugInstall ``` ## 出現過的問題 出現過問題”ouCompleteMe unavailable: No module named ycmd”, 解決辦法 ``` cd ~/.vim/plugged/YouCompleteMe git pull git submodule update --init --recursive apt-get install python3-dev cmake ./install.sh --clang-completer ``` 如果是使用其他語言,官網也給出了安裝命令,不過也要安裝對應的開發語言環境: ``` C++: python3 install.py --clang-completer C#:install Mono and run python3 install.py --clangd-completer Go:install Go and run python3 install.py --go-completer JS and TypeScript:install Node.js and rpm and run python3 install.py --ts-completer Rust:python3 install.py --rust-completer Java:install JDK8 and python3 install.py --java-completer ``` 如果你想一勞永逸,也可以全部安裝,不過也需要把每種語言的環境都安裝好才可以: ``` python3 install.py --all ``` ## 總結 其實只有三部就可以配置好vim+C++的IDE 1. 安裝vim-plug 2. 配置~/.vimrc 3. 執行`:PlugInstall`命令 加載項目樹 ``` $ vim :NERDTreeToggle ``` ## 插件集合 只需要把下面的內容復制到 ~/.vimrc里,然后執行`:PlugInstall`命令即可 ``` " 關閉兼容模式 set nocompatible set nu " 設置行號 set cursorline "突出顯示當前行 " set cursorcolumn " 突出顯示當前列 set showmatch " 顯示括號匹配 " tab 縮進 set tabstop=4 " 設置Tab長度為4空格 set shiftwidth=4 " 設置自動縮進長度為4空格 set autoindent " 繼承前一行的縮進方式,適用于多行注釋 " 定義快捷鍵的前綴,即<Leader> let mapleader=";" " ==== 系統剪切板復制粘貼 ==== " v 模式下復制內容到系統剪切板 vmap <Leader>c "+yy " n 模式下復制一行到系統剪切板 nmap <Leader>c "+yy " n 模式下粘貼系統剪切板的內容 nmap <Leader>v "+p " 開啟實時搜索 set incsearch " 搜索時大小寫不敏感 set ignorecase syntax enable syntax on " 開啟文件類型偵測 filetype plugin indent on " 啟用自動補全 " 退出插入模式指定類型的文件自動保存 au InsertLeave *.go,*.sh,*.php write "============================================================================== " 插件配置 "============================================================================== " 插件開始的位置 call plug#begin('~/.vim/plugged') Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " 符號索引Universal CTags Plug 'universal-ctags/ctags' Plug 'ludovicchabant/vim-gutentags' " 編譯運行AsyncRun Plug 'skywind3000/asyncrun.vim' " 可以在文檔中顯示 git 信息 Plug 'airblade/vim-gitgutter' " 下面兩個插件要配合使用,可以自動生成代碼塊 Plug 'SirVer/ultisnips' Plug 'honza/vim-snippets' " 配色方案 " colorscheme neodark Plug 'KeitaNakamura/neodark.vim' " colorscheme monokai Plug 'crusoexia/vim-monokai' " colorscheme github Plug 'acarapetis/vim-colors-github' " colorscheme gruvbox Plug 'morhetz/gruvbox' " 代碼檢查 Plug 'w0rp/ale' " 修改比較vim-signify Plug 'mhinz/vim-signify' " 語法高亮vim-cpp-enhanced-highlight Plug 'octol/vim-cpp-enhanced-highlight' " 編輯輔助vim-unimpaired Plug 'tpope/vim-unimpaired' " 代碼補全YouCompleteMe Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --go-completer' } " 參數提示echodoc Plug 'Shougo/echodoc.vim' " 函數列表LeaderF Plug 'Yggdroot/LeaderF', { 'do': './install.sh' } " 文件瀏覽vim-dirvish Plug 'vim-scripts/a.vim' Plug 'justinmk/vim-dirvish' " markdown 插件 Plug 'iamcco/mathjax-support-for-mkdp' Plug 'iamcco/markdown-preview.vim' call plug#end() "============================================================================== " 主題配色 "============================================================================== " 開啟24bit的顏色,開啟這個顏色會更漂亮一些 set termguicolors " 配色方案, 可以從上面插件安裝中的選擇一個使用 set background=dark " 主題背景 dark-深色; light-淺色 colorscheme gruvbox" 主題 "============================================================================== " NERDTree 插件 "============================================================================== " 打開和關閉NERDTree快捷鍵 map <F10> :NERDTreeToggle<CR> " 顯示行號 let NERDTreeShowLineNumbers=1 " 打開文件時是否顯示目錄 let NERDTreeAutoCenter=1 " 是否顯示隱藏文件 let NERDTreeShowHidden=0 " 設置寬度 " let NERDTreeWinSize=31 " 忽略一下文件的顯示 let NERDTreeIgnore=['\.pyc','\~$','\.swp'] " 打開 vim 文件及顯示書簽列表 let NERDTreeShowBookmarks=2 " 在終端啟動vim時,共享NERDTree let g:nerdtree_tabs_open_on_console_startup=1 " gutentags 搜索工程目錄的標志,碰到這些文件/目錄名就停止向上一級目錄遞歸 let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project'] " 所生成的數據文件的名稱 let g:gutentags_ctags_tagfile = '.tags' " 將自動生成的 tags 文件全部放入 ~/.cache/tags 目錄中,避免污染工程目錄 let s:vim_tags = expand('~/.cache/tags') let g:gutentags_cache_dir = s:vim_tags " 配置 ctags 的參數 let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q'] let g:gutentags_ctags_extra_args += ['--c++-kinds=+px'] let g:gutentags_ctags_extra_args += ['--c-kinds=+px'] " 檢測 ~/.cache/tags 不存在就新建 if !isdirectory(s:vim_tags) silent! call mkdir(s:vim_tags, 'p') endif if !executable('ctags') let g:gutentags_dont_load = 1 endif " asyncrun 搜索工程目錄的標志,碰到這些文件/目錄名就停止向上一級目錄遞歸。 " 如果遞歸到根目錄還沒找到,那么文件所在目錄就被當作項目目錄。 let g:asyncrun_rootmarks = ['.svn', '.git', '.root', '_darcs', 'build.xml'] " 自動打開 quickfix window ,高度為 6 let g:asyncrun_open = 6 " 任務結束時候響鈴提醒 let g:asyncrun_bell = 1 " 設置 F10 打開/關閉 Quickfix 窗口 nnoremap <F10> :call asyncrun#quickfix_toggle(6)<cr> " 設置 F7 從工程根目錄編譯整個工程 nnoremap <silent> <F7> :AsyncRun -cwd=<root> make <cr> let g:ale_linters_explicit = 1 let g:ale_linters = { \ 'csh': ['shell'], \ 'zsh': ['shell'], \ 'go': ['gofmt', 'golint'], \ 'python': ['flake8', 'mypy', 'pylint'], \ 'c': ['gcc', 'cppcheck'], \ 'cpp': ['gcc', 'cppcheck'], \ 'text': [], \} let g:ale_completion_delay = 500 let g:ale_echo_delay = 20 let g:ale_lint_delay = 500 let g:ale_echo_msg_format = '[%linter%] %code: %%s' let g:ale_lint_on_text_changed = 'normal' let g:ale_lint_on_insert_leave = 1 let g:airline#extensions#ale#enabled = 1 let g:ale_c_gcc_options = '-Wall -O2 -std=c99' let g:ale_cpp_gcc_options = '-Wall -O2 -std=c++11' let g:ale_c_cppcheck_options = '' let g:ale_cpp_cppcheck_options = '' let g:signify_vcs_list = [ 'git' ] let g:signify_sign_show_text = 1 let c_no_curly_error = 1 let g:cpp_class_scope_highlight = 1 let g:cpp_member_variable_highlight = 1 let g:cpp_class_decl_highlight = 1 let g:cpp_posix_standard = 1 let g:cpp_experimental_simple_template_highlight = 1 let g:cpp_experimental_template_highlight = 1 let g:cpp_concepts_highlight = 1 let g:cpp_no_function_highlight = 1 let g:ycm_global_ycm_extra_conf='~/.vim/plugged/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py' let g:ycm_add_preview_to_completeopt = 0 let g:ycm_show_diagnostics_ui = 0 let g:ycm_server_log_level = 'info' let g:ycm_min_num_identifier_candidate_chars = 2 let g:ycm_collect_identifiers_from_comments_and_strings = 1 let g:ycm_complete_in_strings=1 let g:ycm_key_invoke_completion = '<c-z>' " 使用 Ctrl+Z 主動觸發語義補全 noremap <c-z> <NOP> set completeopt=menu,menuone " 修改補全列表配色 highlight PMenu ctermfg=0 ctermbg=242 guifg=black guibg=darkgrey highlight PMenuSel ctermfg=242 ctermbg=8 guifg=darkgrey guibg=black " 對指定源文件,輸入兩個字母后即觸發語義補全 let g:ycm_semantic_triggers = { \ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'], \ 'cs,lua,javascript': ['re!\w{2}'], \ } let g:ycm_filetype_whitelist = { \ "c":1, \ "cpp":1, \ "go":1, \ "python":1, \ "sh":1, \ "zsh":1, \ } let g:ycm_filetype_blacklist = { \ 'markdown' : 1, \ 'text' : 1, \ 'pandoc' : 1, \ 'infolog' : 1, \} set noshowmode let g:Lf_ShortcutF = '<c-p>' let g:Lf_ShortcutB = '<m-n>' noremap <c-n> :LeaderfMru<cr> noremap <m-p> :LeaderfFunction!<cr> noremap <m-n> :LeaderfBuffer<cr> noremap <m-m> :LeaderfTag<cr> let g:Lf_StlSeparator = { 'left': '', 'right': '', 'font': '' } let g:Lf_RootMarkers = ['.project', '.root', '.svn', '.git'] let g:Lf_WorkingDirectoryMode = 'Ac' let g:Lf_WindowHeight = 0.30 let g:Lf_CacheDirectory = expand('~/.vim/cache') let g:Lf_ShowRelativePath = 0 let g:Lf_HideHelp = 1 let g:Lf_StlColorscheme = 'powerline' let g:Lf_PreviewResult = {'Function':0, 'BufTag':0} "============================================================================== " 其他插件配置 "============================================================================== " markdwon 的快捷鍵 map <silent> <F5> <Plug>MarkdownPreview map <silent> <F6> <Plug>StopMarkdownPreview " tab 標簽頁切換快捷鍵 :nn <Leader>1 1gt :nn <Leader>2 2gt :nn <Leader>3 3gt :nn <Leader>4 4gt :nn <Leader>5 5gt :nn <Leader>6 6gt :nn <Leader>7 7gt :nn <Leader>8 8gt :nn <Leader>9 8gt :nn <Leader>0 :tablast<CR> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看