Created
June 21, 2016 16:39
-
-
Save mikerudolph/965a7619653a8ce501659f2c3ca05c9c to your computer and use it in GitHub Desktop.
neovim config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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