From charlesreid1

This page walks through how to duplicate our custom vim + Go setup.

Our setup uses pathogen to manage vim bundles, has the the vim-go vim bundle installed to make syntax highlighting/color customization easier, and installs a custom solarized color scheme.


setting up pathogen

echo "Installing vim-pathogen ..."
mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

installing vim-go bundle

Github repo: https://github.com/fatih/vim-go

Recommended by the Go blog: https://blog.golang.org/go-fmt-your-code

Run the following commands in a shell to install this bundle in the correct location

echo "Installing vim-go ..."
git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go || echo "Existing vim-go folder already found, skipping this step ..."

Now, install all the Go libraries that this depends on by running the following in a new vim window:

:GoInstallBinaries

This will install:

  • gogetdoc
  • guru
  • golint
  • fillstruct
  • godef
  • motion
  • errcheck
  • gocode
  • impl
  • iferr
  • gotags
  • gorename
  • goimports
  • gocode-gomod
  • gomodifytags
  • keyify
  • asmfmt
  • gometalinter

installing custom solarized color scheme

Make a directory for custom color schemes, if one does not already exist:

mkdir -p ~/.vim/colors

Now download the custom Solarized color scheme from here: https://git.charlesreid1.com/dotfiles/mac/src/branch/master/.vim/colors/solarized.vim

Put this color scheme into the ~/.vim/colors directory.

further customizing color scheme

edit ~/.vim/colors/solarized.vim

look for Golang block, add new lines there as needed using the following syntax:

exe "hi! goComment"         .s:fmt_none .s:fg_cyan  .s:bg_none

This tells vim to execute a command (basically equivalent to running this command "by hand" in vim by typing : and entering command mode).

  • The command starts with hi! to indicate it controls highlighting.
  • Next we pass the type of text, in this case we are changing the color for Go comments.
  • We specify any formatting (bold/italic/underline) to apply to text of this type (in this case, none).
  • We specify the foreground color
  • We specify the background color

The foreground and background color lists are here: https://github.com/altercation/solarized

SOLARIZED HEX     16/8 TERMCOL  XTERM/HEX   L*A*B      RGB         HSB
--------- ------- ---- -------  ----------- ---------- ----------- -----------
base03    #002b36  8/4 brblack  234 #1c1c1c 15 -12 -12   0  43  54 193 100  21
base02    #073642  0/4 black    235 #262626 20 -12 -12   7  54  66 192  90  26
base01    #586e75 10/7 brgreen  240 #585858 45 -07 -07  88 110 117 194  25  46
base00    #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195  23  51
base0     #839496 12/6 brblue   244 #808080 60 -06 -03 131 148 150 186  13  59
base1     #93a1a1 14/4 brcyan   245 #8a8a8a 65 -05 -02 147 161 161 180   9  63
base2     #eee8d5  7/7 white    254 #e4e4e4 92 -00  10 238 232 213  44  11  93
base3     #fdf6e3 15/7 brwhite  230 #ffffd7 97  00  10 253 246 227  44  10  99
yellow    #b58900  3/3 yellow   136 #af8700 60  10  65 181 137   0  45 100  71
orange    #cb4b16  9/3 brred    166 #d75f00 50  50  55 203  75  22  18  89  80
red       #dc322f  1/1 red      160 #d70000 50  65  45 220  50  47   1  79  86
magenta   #d33682  5/5 magenta  125 #af005f 50  65 -05 211  54 130 331  74  83
violet    #6c71c4 13/5 brmagenta 61 #5f5faf 50  15 -45 108 113 196 237  45  77
blue      #268bd2  4/4 blue      33 #0087ff 55 -10 -45  38 139 210 205  82  82
cyan      #2aa198  6/6 cyan      37 #00afaf 60 -35 -05  42 161 152 175  74  63
green     #859900  2/2 green     64 #5f8700 60 -20  65 133 153   0  68 100  60


Flags