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 參考文檔
智能推薦
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...
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 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...