日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【Linux】Ubuntu 18下安装Vim自动补全插件YouCompleteMe(可高速下载安装)

發布時間:2023/11/30 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Linux】Ubuntu 18下安装Vim自动补全插件YouCompleteMe(可高速下载安装) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

本文寫于2020年10月,如果你多年后看見這篇文章,方法可能已經失效,但是請牢記,盡量下載你所處時代的最新版本的軟件,會減少很多麻煩。

擺正心態

即便按照本文操作,由于你的系統狀態和我的不一樣,你依然可能安裝失敗,這個時候你需要自己慢慢使用Google搜索尋找答案。

安裝

使用的是 全新的Ubuntu 18.04 LTS,剛剛安裝好系統然后進入終端的root下操作。注意,系統版本非常重要!對應的是vim8和Python3.6.

注意!再次強調本教程在剛剛安裝好的Ubuntu18測試有效,如果你之前進行過其他配置,完全按照本教程操作,可能會遇到未知錯誤!這也是不可避免的!請自行解決。

1 安裝vim 和 git

這個很簡單,我們只需要輸入vim,系統就會提示你進行安裝,再輸入第一條命令apt install vim即可。

輸入git按照系統提示進行安裝。

2 安裝依賴軟件

輸入命令:

sudo apt-get install build-essential cmake python-dev python3-dev

3 安裝Vundle

一款vim插件管理工具,需要使用git clone進行安裝。

輸入命令,這里注意我們存的目標文件位置~/.vim/bundle/Vundle.vim
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

但是不建議直接這樣做,因為GitHub訪問太慢。

方法一:我們需要使用Google的Github加速插件,然后將地址https://github.com/VundleVim/Vundle.vim.git拿出來輸入瀏覽器地址欄中,獲得加速地址,可以使用Google瀏覽器的應用商店搜索。

還是推薦方法二,對于GitHub地址https://github.com/VundleVim/Vundle.vim.git,我們在github.com后面加上.cnpmjs.org,變成https://github.com.cnpmjs.org/VundleVim/Vundle.vim.git,然后再下載,會快很多。

此處參考:解決git clone速度慢的問題

輸入cd ~進入家目錄,再輸入vim ~/.vimrc進行vim配置,讓vim安裝該插件。注意,沒有.vimrc文件也沒事,會自動創建的,如果你不會vim基本操作,請自學。

將以下內容作為.vimrc文件的內容:

set shell=/bin/bashset nocompatible " be iMproved, required filetype off " required" set the runtime path to include Vundle and initializeset rtp+=~/.vim/bundle/Vundle.vimcall 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'" The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo " 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

然后在vim下輸入命令:PluginInstall安裝插件,再輸入bdelete刪除高速緩存關閉窗口,之后退出。

4 安裝YouCompleteMe

4.1 下載源文件包

下載源文件包

cd ~/.vim/bundle git clone https://github.com/Valloric/YouCompleteMe.git

老樣子,記得在github.com后面加上.cnpmjs.org,加速下載,上面提及以后不再重復。

4.2 下載相關依賴

然后進入YouCompleteMe目錄下,之后再獲取最新版本的相關依賴文件

cd ~/.vim/bundle/YouCompleteMe git submodule update --init --recursive

此處,先不要運行第二條命令,因為直接運行會非常慢

我們按照以下步驟做

  • 運行git submodule update --init,這個過程需要等待一下。
  • 輸入vim .gitmodules。

    將里面所有的github.com都加上.cnpmjs.org,然后保存退出。
  • 輸入git submodule sync更新子項目的url
  • 輸入git submodule update --init --recursive
    這個時候,如果提示
    fatal: Needed a single revision Unable to find current revision in submodule path 'third_party/requests_deps/certifi'
  • 我們需要再做一些操作,注意關注結尾的third_party/requests_deps/certifi,你的和我的可能不一樣,請使用自己的提示完成下面的步驟。

    輸入rm -rf <你顯示的結尾>,這里我輸入rm -rf third_party/requests_deps/certifi。

    參考:git submodule update failed

    然后再輸入git submodule update --init --recursive就沒有問題了。

    4.3 編譯和配置支持自動補全的語言

    若使用C/C++,可以安裝C族,運行./install.py --clang-completer;若安裝全部支持的語言,可以輸入./install.py --all。

    這里使用前者,速度較快,安裝全部用不到的話也沒必要。

    完成之后,在 vim 的配置文件 ~/.vimrc 中添加一行
    (在call vundle#begin() 和 call vundle#end() 之間)

    call vundle#begin() . . . Plugin 'Valloric/YouCompleteMe' . . . call vundle#end()

    保存,之后安裝插件,在vim下輸入:PluginInstall,前面提及過,不再細說。

    之后運行vim,提示YouCompleteMe unavailable: requires Vim 8.1.2269+,看來還需要升級vim版本阿!。

    警告! 部分用戶反應卸載vim后無法再安裝,博主目前沒有遇到類似問題,因此請謹慎卸載,可以先自行查閱直接升級vim的相關操作,或者,直接用Ubuntu20吧,vim版本應該足夠了

  • 刪除當前的所有vim版本
  • dpkg -l | grep vim sudo apt-get remove vim vim-runtime vim-tiny vim-common

    注意,第二條命令,是根據第一條命令的結果設置的,博主第一條命令顯示的是這4個,所以刪除這幾個。

  • 安裝新的vim
  • sudo add-apt-repository ppa:jonathonf/vim sudo apt-get update sudo apt-get install vim

    然后,就可以愉快使用vim了

    5 增強功能

    在.vimrc文件末尾加上:

    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>'noremap <c-z> <NOP>let g:ycm_semantic_triggers = {\ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'],\ 'cs,lua,javascript': ['re!\w{2}'],\ }

    接下來可能還會報錯:
    NoExtraConfDetected: No .ycm_extra_conf.py file detected ………………

    博主這里報錯是不能找到.ycm_extra_conf.py,因此我們需要查找一下,發現它在目錄~/.vim/bundle/YouCompleteMe/third_party/ycmd中,因此我們需要再配置一下,加上一條

    let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'

    保存退出,之后就可以愉快使用vim編輯C,CPP文件啦!

    重要參考資料:在vim中配置最新YouCompleteMe代碼自動補全插件

    6 可能的錯誤 和 其他資料

    按照此教程,你大概率不會一帆風順,還會有各種問題……這里只能列出一些我見過的問題。

  • SyntaxError: invalid syntax when import vimsupport
    在你的vim中運行:py3 print( __import__( 'sys' ).version ),默認python版本必須大于3.5,這個很難改好,會出現各種問題,直接按照Ubuntu 18就不會有這個問題了,更低版本的Ubuntu是默認3.5.
  • 參考資料

  • vim 按照插件
    如何在 Linux 上使用 Vundle 管理 Vim 插件
  • 子模塊git clone加速問題
    github克隆項目中的子模塊submodule時遇到的問題
    徹底解決git clone以及 recursive慢的問題
  • 核心問題總結

    工具鏈的版本匹配

    對于YouCompleteMe來說,它以及它依賴的一整套工具鏈,對軟件版本有很高要求,一點點不匹配就不能正常運行,因此,需要充分把握這一點。

    • Python3 >= 3.6
    • Vim >= 8.1
    • 各種依賴……

    總之,這是個與時俱進的插件了。

    Github快速下載

    文章中已經提及了方法,不再說明。但是這一點很重要,因為在中國下載太慢了,效率極低,使用一些策略可以將下載效率提高10倍以上

    不僅僅是當前文件下載,還有其相關依賴下載,也都需要提速,不過依賴的主體文件下載,不知道如何提速,該url應該隱藏在某個文件里,回頭找一找。

    總結

    以上是生活随笔為你收集整理的【Linux】Ubuntu 18下安装Vim自动补全插件YouCompleteMe(可高速下载安装)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。