• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Golang Vim開發環境搭建

    Golang Vim開發環境搭建

    1 升級vim

    vim-go要求vim版本號大于7.4.2009,目前CentOS的版本自帶的都不夠,需要對vim進行升級,直接升到vim 8.0版本。網上大多數升級方案都沒用,下面有個即簡單又有用的:

    rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
    rpm --import http://mirror.ghettoforge.org/distributions/gf/RPM-GPG-KEY-gf.el7
    yum -y remove vim-minimal vim-common vim-enhanced
    yum -y --enablerepo=gf-plus install vim-enhanced
    

    2 安裝Vundle.vim

    新建目錄:

    mkdir -p ~/.vim/bundle
    

    下載Vundle.vim包:

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

    創建.vimrc文件,并把添加如下配置:

    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()
    
    " let Vundle manage Vundle, required
    Plugin 'gmarik/Vundle.vim'
    
    " All of your Plugins must be added before the following line
    call vundle#end()            " required
    filetype plugin indent on    " required
    

    3 安裝Vim-go

    編輯.vimrc,在vundle#begin和vundle#end間增加一行:

    Plugin 'fatih/vim-go'
    

    執行安裝,在vim內輸入:

    :PluginInstall
    

    輸入完后窗口最后放會顯示“Processing ‘fatih/vim-go’”,當信息變成"Done"后表示安裝完成。

    4 安裝YouCompleteMe

    這個是有于在編程的時候自動補齊的,非常有用,但也是最難裝的,在安裝的時候可以像Vim-go這樣,通過在.vimrc上通過PluginInstall安裝,但不建議。主要原因是YouCompleteMe這個包非常大,下載包的過程非常長,而且安裝時會出現各種錯誤,通過Plugin安裝時感覺像卡著了一樣,無法把握進程。下面是自已下載包,自已編譯。

    4.1 下載

    通過git命令將包clone到 ~/.vim/bundle/ 目錄下。因為YouCompleteMe的submodule很多,不能直接下載zip包,但可以把已經git下來的目錄打包放到這里。

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

    4.2 相關報錯

    4.2.1 Python headers are missing …

    報錯信息:

    [root@VM_0_13_centos YouCompleteMe]# python install.py 
    Searching Python 2.7 libraries...
    ERROR: Python headers are missing in /usr/include/python2.7.
    

    解決方案:
    因為沒有安裝python-devel導致的問題。

    yum install -y python-devel
    

    4.2.2 “CMAKE_CXX_COMPILER-NOTFOUND” was not found

    報錯信息:

    CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
    -- NOTE: You appear to be on CentOS. In order to use this application, you require a more modern compiler than the default compiler on this platform. Please install the devtoolset-6 or greater. For example, see this link: https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/
    CMake Error at CMakeLists.txt:239 (message):
      Your C++ compiler does NOT fully support C++11.
    
    -- Configuring incomplete, errors occurred!
    

    解決方案:
    因為沒有安裝g++導致的問題。

    yum install -y gcc-c++
    

    4.3 安裝成功

    安裝成功相關信息:

    [100%] Built target ycm_core
    -- The C compiler identification is GNU 4.8.5
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Found PythonLibs: /usr/lib64/python2.7/config/libpython2.7.so (found version "2.7.5") 
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /tmp/regex_build_U6bamf
    Scanning dependencies of target _regex
    [ 50%] Building C object CMakeFiles/_regex.dir/regex_2/_regex.c.o
    [100%] Building C object CMakeFiles/_regex.dir/regex_2/_regex_unicode.c.o
    Linking C shared library /root/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/cregex/regex_2/_regex.so
    [100%] Built target _regex
    

    驗證:
    編寫一個go程序,在編程的時候通過Ctrl + p會有補全信息。

    5 安裝goimports

    https://gopm.io/網站上獲取golang.org/x/tools包,并把包放到GOPATH下。然后到cmd/goimports編譯出goimports二進制。

    cd $GOPATH/src/golang.org/x/tools/cmd/goimports
    go build
    

    將goimports二進制移到$GOROOT/bin下:

    cp goimports $GOROOT/bin/
    

    6 安裝gocode

    編輯.vimrc,在vundle#begin和vundle#end間增加一行,然后執行PluginInstall:

    Plugin 'nsf/gocode', {'rtp': 'vim/'}
    

    待vim窗口下放狀態顯示為"Done"后,到 ~/.vim/bundle/gocode目錄下編譯出gocode可執行程序,并移動到GOROOT/bin:

    cd  ~/.vim/bundle/gocode
    go build
    mv gocode $GOROOT/bin
    

    先Ctrl+x,后Ctrl+o 就是可以補全了。

    效果:
    在這里插入圖片描述

    YouCompleteMe是補全單詞,是一個通用的補全工具;gocode是補全函數定義等,是golang語言專用的。

    7 參考文檔

    https://www.cnblogs.com/bonelee/p/6500613.html

    版權聲明:本文為fengshenyun原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/fengshenyun/article/details/89950770

    智能推薦

    Golang - OSX配置VIM下的Golang開發環境 (MacOS為例)

    測試環境  MacOS 10.12.6 首先安裝VIM   我已經安裝了 Vim 8.0版本   然后安裝 Vundle ,這是一個vim包管理器   然后編輯  ~/.vimrc 文件  這是我的.vimrc文件截圖   可以復制下面的配置內容 到你的 .vimrc 文件中     然后開始安裝V...

    Golang(一)[環境搭建]

    Golang-環境搭建 1.Windows 1.下載 2.安裝 3.環境變量 4.測試 2.Linux 1.CentOS 1.下載 2.解壓 3.環境變量 4.測試 2.Ubuntu 1.下載 2.解壓 3.環境變量 4.測試 3.macOS Golang 官方下載安裝的引導 1.Windows OS:Windows 10 x64 專業版 Golang:go1.14.1.windows-amd64...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    猜你喜歡

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    精品国产乱码久久久久久蜜桃不卡