Go/Vim Solarized
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.
Contents
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
Go notes on Go
Go/Strings · Go/Arrays · Go/Slices
Go/Lists · Go/Maps · Go/Stacks · Go/Queues
Go/Naming Conventions · Go/Design Patterns
Go/Timing · Go/Profiling · Go/Benchmarking
Go/Tests · Go/Travis CI · Go/Makefiles
our vim + go setup uses custom solarized colors for Golang
|