Skip to content

Instantly share code, notes, and snippets.

@mikerudolph
Created June 21, 2016 16:39
Show Gist options
  • Save mikerudolph/965a7619653a8ce501659f2c3ca05c9c to your computer and use it in GitHub Desktop.
Save mikerudolph/965a7619653a8ce501659f2c3ca05c9c to your computer and use it in GitHub Desktop.
neovim config
set encoding=utf-8 nobomb
" Neovim Config
let mapleader=","
" Autoinstall
if empty(glob('~/.config/nvim/autoload/plug.vim'))
silent ! curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall
endif
call plug#begin('~/.config/nvim/plugged')
Plug 'benekastah/neomake', {'on': ['Neomake'] }
Plug 'scrooloose/syntastic'
Plug 'scrooloose/nerdtree'
Plug 'myusuf3/numbers.vim'
Plug 'mileszs/ack.vim'
Plug 'ctrlpvim/ctrlp.vim'
Plug 'JazzCore/ctrlp-cmatcher'
Plug 'jasoncodes/ctrlp-modified.vim'
Plug 'jelera/vim-javascript-syntax'
Plug 'othree/javascript-libraries-syntax.vim'
Plug 'mxw/vim-jsx' | Plug 'pangloss/vim-javascript'
Plug 'leafgarland/typescript-vim'
Plug 'sheerun/vim-json'
Plug 'othree/html5.vim'
Plug 'cakebaker/scss-syntax.vim'
Plug 'lilydjwg/colorizer', { 'for': ['css', 'sass', 'scss', 'less', 'html', 'xhtml', 'javascript', 'javascript.jsx'] }
Plug 'martin-svk/vim-yaml'
Plug 'tpope/vim-markdown'
Plug 'tpope/vim-git'
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary'
Plug 'ervandew/supertab'
Plug 'Yggdroot/indentline'
Plug 'Raimondi/delimitMate'
Plug 'ryanoasis/vim-devicons'
Plug 'gregsexton/gitv', { 'on': 'Gitv' }
Plug 'airblade/vim-gitgutter'
Plug 'airblade/vim-rooter'
Plug 'honza/dockerfile.vim'
Plug 'majutsushi/tagbar'
Plug 'garyburd/go-explorer'
Plug 'fatih/vim-go'
Plug 'Shougo/deoplete.nvim'
Plug 'zchee/deoplete-go', { 'do': 'make' }
call plug#end()
syntax on
set number
set showmode
set showcmd
set textwidth=120
set cmdheight=1
set pumheight=10
set noswapfile
set hidden
set clipboard+=unnamed
set lazyredraw
set showmatch
set matchtime=2
set virtualedit=block
set nojoinspaces
set scrolloff=5
set sidescrolloff=5
set updatetime=1000
set title
match ErrorMsg '^\(<\|=\|>\)\{7\}\([^=].\+\)\?$'
highlight TermCursor ctermfg=green guifg=green
inoremap jj <Esc>
" Kill the arrows!
map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>
imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>
if bufwinnr(1)
map + <C-W>+
map - <C-W>-
endif
if has('nvim')
nmap <BS> <C-W>h
endif
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-H> <C-W>h
map <C-L> <C-W>l
set mouse=a
set autoindent
set tabstop=2
set shiftwidth=2
set expandtab
set cursorline
set backspace=2
set diffopt=filler
set diffopt+=iwhite
set formatoptions+=c " Format comments
set formatoptions+=r " Continue comments by default
set formatoptions+=o " Make comment when using o or O from comment line
set formatoptions+=q " Format comments with gq
set formatoptions+=n " Recognize numbered lists
set formatoptions+=2 " Use indent from 2nd line of paragraph
set formatoptions+=l " Don't break words that are already long
set formatoptions+=1 " Break before 1-letter words
set gdefault
set history=1000
set magic
set noerrorbells
set nostartofline
set nowrap
set shortmess=atI
set splitbelow
set splitright
set notimeout
set ttimeout
set ttimeoutlen=10
set spellfile=~/.config/nvim/dictionary.utf-8.add
set spelllang=en_us
set nospell
set ignorecase
set smartcase
set wrapscan
set nohlsearch
if has('persistent_undo')
set undofile
set undodir=~/.config/nvim/tmp/undo//
endif
set list
set listchars=tab:▸\ ,extends:❯,precedes:❮,trail:·,nbsp:·
set showbreak=
filetype plugin on
filetype indent on
set foldmethod=marker
set foldlevel=2
set fillchars="fold: "
set completeopt-=preview
set suffixes=.bak,~,.swp,.swo,.o,.d,.info,.aux,.log,.dvi,.pdf,.bin,.bbl,.blg,.brf,.cb,.dmg,.exe,.ind,.idx,.ilg,.inx,.out,.toc,.pyc,.pyd,.dll
set wildignore=*.o,*.obj,*~
set wildignore+=*vim/backups*
set wildignore+=*sass-cache*
set wildignore+=*.jpg,*.jpeg,*.gif,*.png,*.gif,*.psd,*.o,*.obj,*.min.js
set wildignore+=*/smarty/*,*/vendor/*,*/node_modules/*,*/.git/*,*/.hg/*,*/.svn/*,*/.sass-cache/*,*/log/*,*/tmp/*,*/build/*,*/ckeditor/*
set wildignore+=*DS_Store*
set wildignore+=*.gem
set wildignore+=tmp/**
set wildmenu
set wildmode=list:longest
set colorcolumn=80,120
set completeopt=menu,menuone
set confirm
set linespace=3
set laststatus=2
colorscheme lucario
let $NVIM_TUI_ENABLE_CURSOR_SHAPE=1
nnoremap <silent> <F3> :set paste!<CR> :set paste?<CR>
nnoremap <silent> <F4> :set spell!<CR> :set spell?<CR><Paste>
nnoremap <silent> <F5> :source $MYNVIMRC<CR>
nnoremap <silent> <F6> :set nohlsearch!<CR> :set nohlsearch?<CR>
" highlight trailing space
highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
" Sudo write (,W)
noremap <leader>W :w !sudo tee %<CR>
" Remap :W to :w
command W w
command Wq wq
" Kill the whitespaces
fun! <SID>StripTrailingWhitespaces()
let l = line(".")
let c = col(".")
%s/\s\+$//e
call cursor(l,c)
endfun
autocmd BufWritePre <buffer> :call <SID>StripTrailingWhitespaces()
" JSON
au BufRead,BufNewFile *.json set ft=json syntax=javascript
" EJS
au BufRead,BufNewFile *.ejs set syntax=html
" Markdown
au BufRead,BufNewFile *.md set syntax=markdown
let g:NERDTreeMinimalUI=1
let g:NERDTreeWinSize=50
let g:NERDTreeAutoDeleteBuffer=1
let g:NERDTreeShowHidden=1
let g:NERDTreeHighlightCursorline=0
let g:NERDTreeRespectWildIgnore=1
let g:gitgutter_map_keys=0
let g:gitgutter_max_signs=9999
let g:gitgutter_sign_added='+'
let g:gitgutter_sign_modified='~'
let g:gitgutter_sign_removed='-'
let g:gitgutter_sign_modified_removed='~'
let g:gitgutter_sign_removed_first_line='-'
let g:numbers_exclude = ['nerdtree']
let g:syntastic_error_symbol = ''
let g:syntastic_warning_symbol = ''
let g:jsx_ext_required=0
let g:neomake_verbose=0
let g:neomake_warning_sign = {
\ 'text': '',
\ 'texthl': 'WarningMsg',
\ }
let g:neomake_error_sign = {
\ 'text': '',
\ 'texthl': 'ErrorMsg',
\ }
let g:vim_markdown_no_default_key_mappings=1
let g:vim_markdown_folding_disabled=1
let g:python3_host_prog = '/usr/local/bin/python3'
let g:python3_host_skip_check=1
let g:deoplete#enable_at_startup=1
let g:markdown_fenced_languages=[
\'bash=sh',
\'git=gitconfig',
\'javascript',
\'lua',
\'ruby',
\'tmux',
\'viml=vim',
\'xdefaults',
\'zsh']
nmap [[ <Plug>Markdown_MoveToPreviousHeader
nmap ]] <Plug>Markdown_MoveToNextHeader
let g:go_fmt_command = "goimports"
let g:go_fmt_fail_silently = 1
let g:go_alternate_mode = "vsplit"
" Show a list of interfaces which is implemented by the type under your cursor
au FileType go nmap <Leader>s <Plug>(go-implements)
" Show type info for the word under your cursor
au FileType go nmap <Leader>i <Plug>(go-info)
" Run/build/test/coverage
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:syntastic_go_checkers = ['golint', 'govet', 'errcheck']
nmap <F8> :TagbarToggle<CR>
map <C-a> :GoAlternate<CR>
imap <C-a> :GoAlternate<CR>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment