Install neovim, plug and cleanup
parent
b05563005e
commit
f296f847ed
|
@ -0,0 +1,126 @@
|
|||
|
||||
|
||||
" setup plugins
|
||||
|
||||
|
||||
call plug#begin()
|
||||
|
||||
" theme
|
||||
Plug 'altercation/vim-colors-solarized'
|
||||
|
||||
" completion
|
||||
function! DoNvimPluginUpdate(arg)
|
||||
UpdateRemotePlugins
|
||||
endfunction
|
||||
Plug 'Shougo/deoplete.nvim', { 'do': function('DoNvimPluginUpdate') }
|
||||
let g:deoplete#enable_at_startup = 1 " enable at startup
|
||||
let g:deoplete#max_abbr_width = 0 " no width limit
|
||||
let g:deoplete#max_menu_width = 0 " no width limit
|
||||
let g:deoplete#enable_smart_case = 1 " enable smart case
|
||||
"let g:deoplete#file#enable_buffer_path = 1
|
||||
set completeopt=menuone,noinsert
|
||||
inoremap <silent><expr> <TAB> pumvisible() ? "\<C-y>" : "\<TAB>"
|
||||
|
||||
" git
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
||||
" c, c++
|
||||
Plug 'zchee/deoplete-clang', { 'for': [ 'c', 'cpp', 'h' ] }
|
||||
imap <expr> <C-e> emmet#expandAbbrIntelligent("\<C-e>")
|
||||
let g:user_emmet_leader_key='<C-t>'
|
||||
|
||||
" html, css
|
||||
Plug 'mattn/emmet-vim', { 'for': [ 'html', 'css', 'scss' ] }
|
||||
|
||||
" javascript
|
||||
Plug 'wokalski/autocomplete-flow', { 'for': [ 'js' ] }
|
||||
|
||||
" go
|
||||
function! BuildDeopleteGo(arg)
|
||||
:echom "install/update github.com/nsf/gocode"
|
||||
:silent !go get -u github.com/nsf/gocode
|
||||
:silent !make
|
||||
endfunction
|
||||
Plug 'zchee/deoplete-go', { 'for': [ 'go' ], 'do': function('BuildDeopleteGo') }
|
||||
function! BuildVimGo(arg)
|
||||
:echom "install/update github.com/nsf/gocode"
|
||||
:silent !go get -u github.com/nsf/gocode
|
||||
:echom "install/update github.com/alecthomas/gometalinter"
|
||||
:silent !go get -u github.com/alecthomas/gometalinter
|
||||
:echom "install/update golang.org/x/tools/cmd/goimports"
|
||||
:silent !go get -u golang.org/x/tools/cmd/goimports
|
||||
:echom "install/update golang.org/x/tools/cmd/guru"
|
||||
:silent !go get -u golang.org/x/tools/cmd/guru
|
||||
:echom "install/update golang.org/x/tools/cmd/gorename"
|
||||
:silent !go get -u golang.org/x/tools/cmd/gorename
|
||||
:echom "install/update github.com/golang/lint/golint"
|
||||
:silent !go get -u github.com/golang/lint/golint
|
||||
:echom "install/update github.com/kisielk/errcheck"
|
||||
:silent !go get -u github.com/kisielk/errcheck
|
||||
:echom "install/update github.com/jstemmer/gotags"
|
||||
:silent !go get -u github.com/jstemmer/gotags
|
||||
:echom "install/update github.com/klauspost/asmfmt/cmd/asmfmt"
|
||||
:silent !go get -u github.com/klauspost/asmfmt/cmd/asmfmt
|
||||
:echom "install/update github.com/fatih/motion"
|
||||
:silent !go get -u github.com/fatih/motion
|
||||
:echom "install/update github.com/zmb3/gogetdoc"
|
||||
:silent !go get -u github.com/zmb3/gogetdoc
|
||||
:echom "install/update github.com/josharian/impl"
|
||||
:silent !go get -u github.com/josharian/impl
|
||||
endfunction
|
||||
Plug 'fatih/vim-go', { 'for': [ 'go' ], 'do': function('BuildVimGo') }
|
||||
let g:go_highlight_functions = 1
|
||||
let g:go_highlight_methods = 1
|
||||
let g:go_highlight_structs = 1
|
||||
let g:go_highlight_interfaces = 1
|
||||
let g:go_highlight_operators = 1
|
||||
let g:go_highlight_build_constraints = 1
|
||||
let g:go_term_enabled = 1
|
||||
autocmd FileType go call s:define_go_leader_mappings()
|
||||
function! s:define_go_leader_mappings()
|
||||
" [r] Run go application
|
||||
nnoremap <silent> <Leader>r :<C-u>GoRun<CR>
|
||||
" [b] Build go application
|
||||
nnoremap <silent> <Leader>b :<C-u>GoBuild<CR>
|
||||
endfunction
|
||||
|
||||
call plug#end()
|
||||
|
||||
|
||||
" main configuration
|
||||
|
||||
|
||||
" theme
|
||||
set background=dark
|
||||
if $LIGHT == 'true'
|
||||
set background=light
|
||||
endif
|
||||
let g:solarized_termtrans=1
|
||||
let g:solarized_termcolors=256
|
||||
colorscheme solarized
|
||||
|
||||
" numbering
|
||||
set number
|
||||
highlight LineNr ctermfg=239 ctermbg=none
|
||||
|
||||
" cursor and line
|
||||
set cursorline
|
||||
highlight CursorLine ctermbg=none
|
||||
highlight CursorLineNR cterm=bold ctermfg=244
|
||||
|
||||
" indentation
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
|
||||
" hidden characters
|
||||
set listchars=tab:»\ ,extends:›,precedes:‹,nbsp:·,trail:·
|
||||
set list
|
||||
|
||||
" spellcheck
|
||||
set spell spelllang=en_gb
|
||||
|
||||
|
||||
|
||||
" vim: set expandtab ts=2 sw=2:
|
||||
|
|
@ -7,8 +7,6 @@ echo
|
|||
echo "Installing Caddy $CADDY_VERSION..."
|
||||
echo
|
||||
|
||||
source /etc/profile # add Go to PATH
|
||||
|
||||
git clone https://github.com/mholt/caddy -b "v$CADDY_VERSION" $(go env GOPATH)/src/github.com/mholt/caddy
|
||||
cd $(go env GOPATH)/src/github.com/mholt/caddy/caddy
|
||||
go get github.com/caddyserver/builds
|
||||
|
|
|
@ -29,5 +29,3 @@ cd /usr/local/go/src
|
|||
./make.bash
|
||||
apk del .build-deps
|
||||
|
||||
echo 'export GOPATH="$HOME/go"' >> /etc/profile.d/golang.sh
|
||||
echo 'export PATH="$GOPATH/bin:/usr/local/go/bin:$PATH"' >> /etc/profile.d/golang.sh
|
||||
|
|
|
@ -8,9 +8,52 @@ echo "Installing neovim..."
|
|||
echo
|
||||
|
||||
apk add --no-cache --virtual .build-deps \
|
||||
git \
|
||||
alpine-sdk build-base \
|
||||
libtool \
|
||||
automake \
|
||||
m4 \
|
||||
autoconf \
|
||||
linux-headers \
|
||||
unzip \
|
||||
ncurses ncurses-dev ncurses-libs ncurses-terminfo \
|
||||
python3 \
|
||||
python3-dev \
|
||||
clang \
|
||||
go \
|
||||
xz \
|
||||
curl \
|
||||
tar
|
||||
make \
|
||||
cmake
|
||||
|
||||
echo "# TODO: Install from source"
|
||||
git clone https://github.com/neovim/libtermkey.git
|
||||
cd libtermkey
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libtermkey
|
||||
|
||||
git clone https://github.com/neovim/libvterm.git
|
||||
cd libvterm
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libvterm
|
||||
|
||||
git clone https://github.com/neovim/unibilium.git
|
||||
cd unibilium
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf unibilium
|
||||
|
||||
git clone https://github.com/neovim/neovim.git
|
||||
cd neovim
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf nvim
|
||||
|
||||
pip3 install neovim
|
||||
|
||||
apk del .build-deps
|
||||
|
|
|
@ -7,6 +7,4 @@ echo
|
|||
echo "Installing packr..."
|
||||
echo
|
||||
|
||||
source /etc/profile # add Go to PATH
|
||||
|
||||
go get -u github.com/gobuffalo/packr/...
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
source ./.versions
|
||||
|
||||
echo
|
||||
echo "Installing vim-plug..."
|
||||
echo
|
||||
|
||||
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
|
||||
nvim +PlugInstall +qa
|
|
@ -7,6 +7,4 @@ echo
|
|||
echo "Installing vgo..."
|
||||
echo
|
||||
|
||||
source /etc/profile # add Go to PATH
|
||||
|
||||
go get -u golang.org/x/vgo
|
||||
|
|
4
.profile
4
.profile
|
@ -1,3 +1,7 @@
|
|||
|
||||
# Golang
|
||||
export PATH="$(go env GOPATH)/bin:$PATH"
|
||||
|
||||
# Aliases
|
||||
alias vim=nvim
|
||||
|
||||
|
|
11
Dockerfile
11
Dockerfile
|
@ -3,29 +3,30 @@ FROM alpine:latest
|
|||
# Install dotfiles
|
||||
|
||||
WORKDIR /home/ambrose
|
||||
|
||||
COPY . .
|
||||
|
||||
# Install tools from source
|
||||
|
||||
# System
|
||||
RUN ./.install/core.sh
|
||||
RUN ./.install/git.sh
|
||||
RUN ./.install/zsh.sh
|
||||
RUN ./.install/neovim.sh
|
||||
# Languages
|
||||
RUN ./.install/golang.sh
|
||||
RUN ./.install/node.sh
|
||||
RUN ./.install/python.sh
|
||||
|
||||
RUN ./.install/caddy.sh
|
||||
# Setup global PATH
|
||||
ENV PATH=/usr/local/go/bin:$PATH
|
||||
|
||||
# Create user
|
||||
|
||||
RUN adduser -s /bin/zsh -D ambrose
|
||||
USER ambrose
|
||||
|
||||
# Install user tools
|
||||
|
||||
# Install user programs
|
||||
RUN ./.install/vgo.sh
|
||||
RUN ./.install/caddy.sh
|
||||
RUN ./.install/packr.sh
|
||||
|
||||
# Open shell by default
|
||||
|
|
Loading…
Reference in New Issue