Last active
March 5, 2019 17:47
-
-
Save mjs2600/4a9ca56836607a753c13f2ab68749398 to your computer and use it in GitHub Desktop.
vimrc
This file contains 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
if !filereadable(glob("~/.config/nvim/autoload/plug.vim")) | |
!curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | |
endif | |
let g:clipboard = { | |
\ 'name': 'pbcopy', | |
\ 'copy': { | |
\ '+': 'pbcopy', | |
\ '*': 'pbcopy', | |
\ }, | |
\ 'paste': { | |
\ '+': 'pbpaste', | |
\ '*': 'pbpaste', | |
\ }, | |
\ 'cache_enabled': 0, | |
\ } | |
let g:python_host_prog = $HOME . '/nvim2/bin/python' | |
let g:ruby_host_prog = $HOME . '/.asdf/installs/ruby/2.5.1/bin/ruby' | |
let g:python3_host_prog = $HOME . '/nvim3/bin/python' | |
let mapleader = ' ' | |
let maplocalleader = ',' | |
let g:ale_completion_enabled = 1 | |
silent !mkdir -p ~/.vim/undo > /dev/null 2>&1 | |
call plug#begin('~/.vim/plugged') | |
Plug 'w0rp/ale' | |
" Plug 'elmcast/elm-vim' | |
Plug 'vimwiki/vimwiki' | |
Plug 'vim-airline/vim-airline' | |
" Plug 'leanprover/lean.vim' | |
Plug 'rizzatti/dash.vim', { 'on': 'Dash' } | |
" Plug 'reasonml-editor/vim-reason-plus' | |
" Plug 'chrisbra/csv.vim' | |
" Plug 'elixir-lang/vim-elixir' | |
" Plug 'slashmili/alchemist.vim' | |
" Plug 'manicmaniac/coconut.vim' | |
" Plug 'maralla/completor.vim' | |
" Plug 'thinca/vim-ref' | |
" Plug 'awetzel/elixir.nvim', { 'do': 'yes \| ./install.sh' } | |
Plug 'ervandew/supertab' | |
" Plug 'autozimu/LanguageClient-neovim', { | |
" \ 'branch': 'next', | |
" \ 'do': 'bash install.sh', | |
" \ } | |
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } | |
Plug 'zchee/deoplete-jedi', { 'for': 'python' } | |
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | |
Plug 'junegunn/fzf.vim' | |
Plug 'mbbill/undotree', { 'on': 'UndotreeToggle' } | |
Plug 'machakann/vim-highlightedyank' | |
" Plug 'guns/vim-sexp' | |
" Plug 'kien/rainbow_parentheses.vim' | |
Plug 'tpope/vim-commentary' | |
Plug 'tpope/vim-vinegar' | |
Plug 'tpope/vim-fugitive' | |
" Plug 'tpope/vim-rhubarb' | |
Plug 'tpope/vim-surround' | |
Plug 'tpope/vim-endwise' | |
" Plug 'tpope/vim-fireplace' | |
" Plug 'tpope/vim-sexp-mappings-for-regular-people' | |
" Plug 'edkolev/tmuxline.vim' | |
" Plug 'nanotech/jellybeans.vim' | |
" Plug 'junegunn/seoul256.vim' | |
Plug 'joshdick/onedark.vim' | |
Plug 'ryanoasis/vim-devicons' | |
Plug 'ludovicchabant/vim-gutentags' | |
Plug 'majutsushi/tagbar', { 'on': 'TagbarToggle' } | |
" Plug 'rust-lang/rust.vim' | |
" Plug 'racer-rust/vim-racer' | |
" Plug 'jmcantrell/vim-virtualenv' | |
Plug 'sheerun/vim-polyglot' | |
Plug 'christoomey/vim-tmux-navigator', { 'on': ['TmuxNavigateLeft', 'TmuxNavigateDown', 'TmuxNavigateUp', 'TmuxNavigateRight'] } | |
call plug#end() | |
syntax enable | |
filetype plugin indent on | |
" let g:jellybeans_background_color_256='NONE' | |
colorscheme onedark | |
let g:onedark_termcolors=256 | |
" set background=dark | |
nnoremap <silent> K :ALEHover<CR> | |
nnoremap <silent> <cr> :ALEHover<cr> | |
nnoremap <silent> gd :ALEGoToDefinition<CR> | |
nnoremap <silent> gf :ALEFix<cr> | |
nnoremap <silent> <leader>s :ALESymbolSearch | |
nnoremap <silent> <leader>r :ALEFindReferences<cr> | |
set expandtab | |
set shiftwidth=2 | |
set softtabstop=2 | |
set ignorecase | |
set smartcase | |
set hlsearch | |
set incsearch | |
set inccommand=nosplit | |
set number | |
set encoding=utf8 " Necessary to show Unicode glyphs | |
set list listchars=tab:>>,eol:¬,trail:· | |
set undofile | |
set undodir=~/.vim/undo | |
set shell=zsh | |
set mouse=a | |
set vb | |
set guioptions-=T "remove toolbar | |
set clipboard+=unnamedplus | |
set textwidth=80 | |
set colorcolumn=+1 | |
set t_Co=256 | |
set background=dark | |
set grepprg=rg\ --vimgrep | |
highlight Normal ctermbg=NONE | |
highlight nonText ctermbg=NONE | |
command! -bang -nargs=* Rg | |
\ call fzf#vim#grep( | |
\ 'rg --column --line-number --no-heading --color=always '.shellescape(<q-args>), 1, | |
\ <bang>0 ? fzf#vim#with_preview('up:60%') | |
\ : fzf#vim#with_preview('right:50%:hidden', '?'), | |
\ <bang>0) | |
nnoremap Y y$ | |
" Map <Esc> to exit terminal-mode: | |
tnoremap <Esc> <C-\><C-n> | |
" tnoremap <A-h> <C-\><C-N><C-w>h | |
" tnoremap <A-j> <C-\><C-N><C-w>j | |
" tnoremap <A-k> <C-\><C-N><C-w>k | |
" tnoremap <A-l> <C-\><C-N><C-w>l | |
" inoremap <A-h> <C-\><C-N><C-w>h | |
" inoremap <A-j> <C-\><C-N><C-w>j | |
" inoremap <A-k> <C-\><C-N><C-w>k | |
" inoremap <A-l> <C-\><C-N><C-w>l | |
" nnoremap <A-h> <C-w>h | |
" nnoremap <A-j> <C-w>j | |
" nnoremap <A-k> <C-w>k | |
" nnoremap <A-l> <C-w>l | |
let g:tmux_navigator_no_mappings = 1 | |
" nnoremap <silent> <Left> :TmuxNavigateLeft<cr> | |
" nnoremap <silent> <Down> :TmuxNavigateDown<cr> | |
" nnoremap <silent> <Up> :TmuxNavigateUp<cr> | |
" nnoremap <silent> <Right> :TmuxNavigateRight<cr> | |
tnoremap <silent> <M-h> <C-\><C-N>:TmuxNavigateLeft<cr> | |
tnoremap <silent> <M-j> <C-\><C-N>:TmuxNavigateDown<cr> | |
tnoremap <silent> <M-k> <C-\><C-N>:TmuxNavigateUp<cr> | |
tnoremap <silent> <M-l> <C-\><C-N>:TmuxNavigateRight<cr> | |
inoremap <silent> <M-h> <C-\><C-N>:TmuxNavigateLeft<cr> | |
inoremap <silent> <M-j> <C-\><C-N>:TmuxNavigateDown<cr> | |
inoremap <silent> <M-k> <C-\><C-N>:TmuxNavigateUp<cr> | |
inoremap <silent> <M-l> <C-\><C-N>:TmuxNavigateRight<cr> | |
nnoremap <silent> <M-h> :TmuxNavigateLeft<cr> | |
nnoremap <silent> <M-j> :TmuxNavigateDown<cr> | |
nnoremap <silent> <M-k> :TmuxNavigateUp<cr> | |
nnoremap <silent> <M-l> :TmuxNavigateRight<cr> | |
" noremap <silent> <c-l> <c-w>l | |
" noremap <silent> <c-h> <c-w>h | |
" noremap <silent> <c-k> <c-w>k | |
" noremap <silent> <c-j> <c-w>j | |
" | |
noremap <leader>$ :setlocal spell! spelllang=en_us<CR> | |
noremap <leader>f :Files<CR> | |
noremap <leader>b :Buffers<CR> | |
noremap <leader>q :Dash<CR> | |
noremap <leader>/ :Rg<CR> | |
noremap <leader>t :Tags<CR> | |
noremap <leader>y :TagbarToggle<CR> | |
noremap <leader>u :UndotreeToggle<CR> | |
noremap <leader>` :terminal<CR> | |
nnoremap <leader><cr> :nohlsearch<cr> | |
func! DeleteTrailingWS() | |
exe 'normal mz' | |
%s/\s\+$//ge | |
exe 'normal `z' | |
endfunc | |
augroup whitespace | |
autocmd BufWrite * silent call DeleteTrailingWS() | |
augroup END | |
let g:vimwiki_list = [{'path': '~/Dropbox/vimwiki/wikidata', | |
\ 'syntax': 'markdown', 'ext': '.md'}] | |
noremap <leader>. :e ~/.config/nvim/init.vim<CR> | |
"Elixir | |
autocmd FileType elixir noremap <buffer> <leader><space> :!mix test<cr> | |
autocmd FileType elixir noremap <buffer> <leader>~ :!mix dialyzer<cr> | |
augroup filetypedetect | |
au BufRead,BufNewFile *.exs set filetype=elixir | |
au BufRead,BufNewFile *.exs,*.ex set textwidth=98 | |
augroup END | |
autocmd FileType rust noremap <buffer> <leader><space> :!cargo test<cr> | |
let g:LanguageClient_serverCommands = { | |
\ 'rust': ['rustup', 'run', 'nightly', 'rls'], | |
\ 'reason': ['ocaml-language-server', '--stdio'], | |
\ 'ocaml': ['ocaml-language-server', '--stdio'], | |
\ 'python': ['pyls'], | |
\ 'javascript': ['javascript-typescript-stdio'], | |
\ 'typescript': ['javascript-typescript-stdio'], | |
\ 'clojure': ['clojure-lsp'], | |
\ } | |
let g:tagbar_type_elixir = { | |
\ 'ctagstype' : 'elixir', | |
\ 'kinds' : [ | |
\ 'm:modules', | |
\ 'f:functions', | |
\ 'functions:functions', | |
\ 'c:callbacks', | |
\ 'd:delegates', | |
\ 'e:exceptions', | |
\ 'i:implementations', | |
\ 'a:macros', | |
\ 'o:operators', | |
\ 'p:protocols', | |
\ 'r:records', | |
\ 't:tests' | |
\ ] | |
\ } | |
" Rust | |
let g:tagbar_type_rust = { | |
\ 'ctagstype' : 'rust', | |
\ 'kinds' : [ | |
\'T:types', | |
\'f:functions', | |
\'g:enums', | |
\'s:structure names', | |
\'m:modules,module names', | |
\'c:consts', | |
\'t:traits', | |
\'i:impls', | |
\] | |
\} | |
" Haskell | |
let g:tagbar_type_haskell = { | |
\ 'ctagsbin' : 'hasktags', | |
\ 'ctagsargs' : '-x -c -o-', | |
\ 'kinds' : [ | |
\ 'm:modules:0:1', | |
\ 'd:data: 0:1', | |
\ 'd_gadt: data gadt:0:1', | |
\ 't:type names:0:1', | |
\ 'nt:new types:0:1', | |
\ 'c:classes:0:1', | |
\ 'cons:constructors:1:1', | |
\ 'c_gadt:constructor gadt:1:1', | |
\ 'c_a:constructor accessors:1:1', | |
\ 'ft:function types:1:1', | |
\ 'fi:function implementations:0:1', | |
\ 'o:others:0:1' | |
\ ], | |
\ 'sro' : '.', | |
\ 'kind2scope' : { | |
\ 'm' : 'module', | |
\ 'c' : 'class', | |
\ 'd' : 'data', | |
\ 't' : 'type' | |
\ }, | |
\ 'scope2kind' : { | |
\ 'module' : 'm', | |
\ 'class' : 'c', | |
\ 'data' : 'd', | |
\ 'type' : 't' | |
\ } | |
\ } | |
" Auto Formatting | |
let g:ale_fix_on_save = 1 | |
let g:ale_fixers = { | |
\ 'elixir': ['mix_format'], | |
\ 'elm': ['format'], | |
\ 'javascript': ['prettier'], | |
\ 'python': ['black', 'isort'], | |
\ 'reason': ['refmt'], | |
\ 'rust': ['rustfmt'], | |
\ 'typescript': ['prettier'], | |
\} | |
let b:ale_linters = { | |
\ 'elixir': ['elixir-ls', 'mix'] | |
\} | |
let g:ale_elixir_elixir_ls_release = $HOME . '/Code/elixir_ls_release/' | |
" Markdown | |
let g:tagbar_type_markdown = { | |
\ 'ctagstype' : 'markdown', | |
\ 'kinds' : [ | |
\ 'h:Heading_L1', | |
\ 'i:Heading_L2', | |
\ 'k:Heading_L3' | |
\ ] | |
\ } | |
let g:ale_virtualenv_dir_names = ['.env', 'env', 've', 've-py3', 'virtualenv', '.direnv/python-2.7.14', '.direnv/python-3.6.4'] | |
" Use deoplete. | |
let g:deoplete#enable_at_startup = 1 | |
let g:SuperTabDefaultCompletionType = "<c-n>" | |
let g:gutentags_cache_dir = '~/.tags_cache' | |
set statusline+=%{gutentags#statusline()} | |
let g:polyglot_disabled = ['elm', 'r'] | |
let g:LatexBox_latexmk_async = 1 | |
" let g:LatexBox_latexmk_preview_continuously = 1 | |
" Theme | |
let g:airline_powerline_fonts = 1 | |
let g:airline_theme='onedark' | |
let g:airline#extensions#ale#enabled = 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment