最好用的編輯器之一 Vim Go環境搭建

2021-09-11 10:58:03 字數 4695 閱讀 1244

本文由librant發表

如果說在linux環境下,什麼編輯器最好用,如果我說是vim,估計會有一大部分人嗤之以鼻,怎麼可能。vim可能是他用過眾多編輯器最難用的乙個。在我司用的是雲虛擬機器,說實話吧,這裡吐槽一下,是真的卡,沒開幾個網頁,開啟幾個軟體就卡的不要不要的,後來碼**的時候,能用linux機器我就盡量使用linux環境,如果讀者正好也是一名gopher的話,那我就強烈建議你使用vim,vim-go是當前使用最為廣泛的用於搭建golang開發環境的vim外掛程式。好了,廢話不多說,看我搭建好的介面吧。

圖 go-vim介面

看到這個介面,讀者是不是不認識了,這就對了,是不是覺得很炫酷,其實vim有很多的外掛程式,可以把vim打造的非常棒,等讀者查閱相關資料,清楚vim的各種引數的時候,就可以根據自己的喜好,搭建不同風格的go開發環境啦。so廢話不多說,開整。(建議先看完《跟我學docker》的第一章部分)

​ 能成功從github拉取**,go編譯器安裝完成之後,就可以在搭建go-vim啦。首先是在當前使用者的home目錄下建立.vim目錄和.vimrc檔案:

librant@ubuntu:~$mkdir .vim

librant@ubuntu:~$touch .vimrc

librant@ubuntu:~/.vim$mkdir bundle

然後進入到bundle目錄中,安裝vundle.vim:

同樣進入到bundle目錄中,安裝vim-go:

~/(使用者$home) 目錄下已經有 .vimrc檔案就不需要再建立了。("為注釋部分)。

在 .vimrc 檔案中新增如下配置:

set nocompatible

filetype off

set rtp+=~/.vim/bundle/vundle.vim

call vundle#begin()

plugin 'gmarik/vundle.vim'

call vundle#end()

filetype plugin indent on

儲存後,退出。

plugin 'fatih/vim-go'

:plugininstall

執行之後會在左側出現需要安裝的外掛程式列表,右側是.vimrc檔案。如圖1-2-2所示:

圖 1-2-2 vim外掛程式安裝介面

首先開啟 .vimrc 檔案,切換到命令列模式,執行 goinstallbinaries 命令自行安裝。

:goinstallbinaries

等待 vim-go依賴的工具自動安裝,如果安裝成功後,會在$gopath/bin目錄下生成。安裝完成後如圖1-2-3所示:

圖 1-3-2 vim-go依賴的命令檔案

(缺少什麼工具,基本都可以找到的,這裡就不一一枚舉了)

​ 1)在github上搜尋molokai主題,找到主題的git倉庫 tomasr/molokai

​ 4)配置 .vimrc 檔案,在檔案中紅新增如下資訊:

set t_co=256

colorscheme molokai

let g:molokai_original = 1

let g:rehash256 = 1

需要配置其他的主題,只需要設定相應的主題名稱。

​ ultisnips是vim的**片段工具,它只是乙個引擎,它需要和vim-snippets搭配使用。vim-snippets預定義了幾十種語言常用的**模板,位於~/.vim/bundle/vim-snippets/ultisnips/,ultisnips 有一套自己的**模板語法規則。

在 .vimrc中的配置如下:

plugin 'honza/vim-snippets'

plugin 'sirver/ultisnips'

"插入模式下直接通過鍵來觸發ultisnips的**塊補全

let g:ultisnip***pandtrigger=""

"彈出ultisnips的可用列表,由於不常用, 所以這裡設定成了特殊的對映

let g:ultisnipslistsnippets=""

let g:ultisnipsjumpforwardtrigger=""

let g:ultisnipsjumpbackwardtrigger=""

增加位置如go-vim的位置一致,安裝過程也是類似的。

github的**路徑如下所示:

​ nerdtree的作用就是列出當前路徑的目錄樹,一般ide都是有的。可以方便的瀏覽專案的總體的目錄結構和建立刪除重新命名檔案或檔名。

​ 在 .vimrc中的配置如下:

plugin 'scrooloose/nerdtree'

" 設定nerdtree

map :nerdtreemirror

map :nerdtreetoggle

進入到 vim 後可以按 f7 顯示和隱藏 nerdtree區域。

github的**路徑如下所示:

​ tagbar可以將正在編輯的檔案生成乙個大綱檢視,包含介面/方法/變數等, 可以選中快速跳轉到目標位置, 編輯大檔案特別有用。

由於tagbar是基於ctags,需要先安裝ctags:

root@ubuntu:/#apt-get install ctags

​ 在 .vimrc中的配置如下:

"f9觸發,設定寬度為30

let g:tagbar_width = 30

nmap :tagbartoggle

"開啟自動預覽(隨著游標在標籤上的移動,頂部會出現乙個實時的預覽視窗)

let g:tagbar_autopreview = 1

"關閉排序,即按標籤本身在檔案中的位置排序

let g:tagbar_sort = 0

進入到 vim 後可以按 f9 開啟和關閉tagbar功能 。

github的**路徑如下所示:

​ delimitmate是自動補全引號(單引號/雙引號/反引號), 括號((){})的外掛程式。

​ 在 .vimrc中的配置如下:

plugin 'raimondi/delimitmate'

github的**路徑如下所示:

set nocompatible:不要使用vi的鍵盤模式,而是vim自己的

set number:顯示行號

set showcmd:輸入的命令顯示出來

syntax on:開啟語法高亮

filetype on:檢測檔案型別

好用的Markdown編輯器一覽

markdown 是一種簡單的 輕量級的標記語法。使用者可以使用諸如 等簡單的標記符號以最小的輸入代價生成極富表現力的文件。markdown具有很多優點 支援markdown的編輯器太多,功能也不完全一致,有的是用來進行基本的寫作,有的是用來寫 的,有的甚至只是部落格平台配套的編輯器。本文按照編輯器...

好用的Markdown編輯器一覽

好用的markdown編輯器一覽 markdown 是一種簡單的 輕量級的標記語法。使用者可以使用諸如 等簡單的標記符號以最小的輸入代價生成極富表現力的文件。markdown具有很多優點 寫作中新增簡單符號即完成排版,所見即所得。讓你專注於文字而不是排版。格式轉換方便,markdown 的文字你可以...

好用的Markdown編輯器彙總

markdown 是一種簡單的 輕量級的標記語法。使用者可以使用諸如 等簡單的標記符號以最小的輸入代價生成極富表現力的文件。markdown具有很多優點 支援markdown的編輯器太多,功能也不完全一致,有的是用來進行基本的寫作,有的是用來寫 的,有的甚至只是部落格平台配套的編輯器。本文按照編輯器...