Skip to content

Instantly share code, notes, and snippets.

@mheiber
Created June 3, 2020 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mheiber/3ff8ff01224820249c34e2092f88181d to your computer and use it in GitHub Desktop.
Save mheiber/3ff8ff01224820249c34e2092f88181d to your computer and use it in GitHub Desktop.
set nocompatible
filetype off " required for Vundle
:set suffixesadd+=.js
nnoremap <leader><space> :noh<return>
nnoremap <leader><leader> :b#<CR>
nnoremap <leader>s :source ~/.vimrc<CR>
nnoremap <leader>q :xall<CR>
nnoremap <right> <C-w>10>
nnoremap <left> <C-w>10<
nnoremap <up> :resize -5<Cr>
nnoremap <down> :resize +5<Cr>
nnoremap <leader>1 :bp<Cr>
nnoremap <leader>2 :bp<Cr>
nnoremap <leader>b :NERDTreeToggle<Cr>
nnoremap <leader>f :NERDTreeFind<Cr>
cnoremap <expr> %% getcmdtype() == ':' ? expand('%:h').'/' : '%%'
" nnoremap <leader>] :cn<cr>
" nnoremap <leader>[ :cp<cr>
nnoremap <leader>c :CoqToCursor<Cr>
inoremap <leader>c <Esc>:CoqToCursor<Cr>
nnoremap <leader>vi :e ~/.vimrc<enter>
nnoremap <C-p> :FZF<cr>
nnoremap <leader>p :FZFMru<cr>
" nnoremap <leader>t :CtrlPMRUFiles<cr>
let g:NERDTreeWinPos = "right"
set mouse=a
augroup NO_CURSOR_MOVE_ON_FOCUS
au!
au FocusLost * let g:oldmouse=&mouse | set mouse=
au FocusGained * if exists('g:oldmouse') | let &mouse=g:oldmouse | unlet g:oldmouse | endif
augroup END
" set diffopt+=vertical
command! NS !find . -name ".*swp" -delete
if has('nvim')
:set inccommand=nosplit
tnoremap jk <C-\><C-n>
tnoremap <Esc> <C-\><C-n>
endif
set hidden
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin()
" stuff for erlang
" Use release branch (Recommended)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'hyhugh/coc-erlang_ls', {'do': 'yarn install --frozen-lockfile'}
Plug 'yuttie/comfortable-motion.vim'
Plug 'tpope/vim-fugitive'
Plug 'APZelos/blamer.nvim' " activate with :BlamerToggle, is like git lens
Plug 'airblade/vim-gitgutter' " stage hunk with \hs unstage \hu
Plug 'skwp/greplace.vim' "\vv \vV \vr \vR
Plug 'tpope/vim-abolish' " crs snake_case crc camelCase crm MixedCase
Plug 'junegunn/fzf'
Plug 'pbogut/fzf-mru.vim'
call plug#end()
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'tomasiser/vim-code-dark'
Plugin 'vim-scripts/vim-auto-save'
Plugin 'dhruvasagar/vim-zoom'
" pre-req for coquille
Plugin 'let-def/vimbufsync'
" Plugin 'the-lambda-church/coquille'
Plugin 'whonore/Coqtail'
" Plugin 'tomlion/vim-solidity'
Plugin 'mbbill/undotree'
" Plugin 'gcmt/taboo.vim'
" Plugin 'Raimondi/delimitMate'
" Plugin 'maxbrunsfeld/vim-yankstack'
Plugin 'mileszs/ack.vim'
Plugin 'vim-syntastic/syntastic'
Plugin 'pangloss/vim-javascript'
Plugin 'othree/jspc.vim'
Plugin 'arithran/vim-delete-hidden-buffers'
Plugin 'plasticboy/vim-markdown'
let g:vim_markdown_folding_disabled = 1
if v:version > 704
" Plugin 'Valloric/YouCompleteMe'
endif
Plugin 'tpope/vim-rsi'
Plugin 'tpope/vim-sensible'
Plugin 'tpope/vim-commentary'
Plugin 'leafgarland/typescript-vim'
Plugin 'dkprice/vim-easygrep'
Plugin 'tpope/vim-surround'
Plugin 'tpope/vim-repeat'
Plugin 'tpope/vim-dispatch'
Plugin 'scrooloose/nerdtree'
Plugin 'a.vim'
let g:ctrlp_custom_ignore = 'node_modules\|DS_Store\|git'
" use nearest .git
let g:ctrlp_working_path_mode = 'r'
let g:ctrlp_clear_cache_on_exit = 0
let g:ctrlp_switch_buffer = 'Et'
" let g:ctrlp_cmd = 'CtrlPBuffer'
call vundle#end()
filetype plugin indent on
let g:ack_default_options = " --smart-case"
colo codedark
:inoremap jk <Esc>
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
" set nu
set ignorecase
set smartcase
set incsearch
set hlsearch
hi Search cterm=NONE ctermfg=gray ctermbg=blue
set ic
syntax on
set title
set wildignore+=node_modules/**,*/_build/*
set shell=zsh\ --login
" WHY DOESN'T THIS WORK UNTIL I SOURCE A SECOND TIME???!!?!
nnoremap Y y$
" set noswapfile
" set list
" set ffs=unix
set rtp^="/home/max/.opam/4/share/ocp-indent/vim"
let g:opamshare = substitute(system('opam config var share'),'\n$','','''')
execute "set rtp+=" . g:opamshare . "/merlin/vim"
let g:syntastic_ocaml_checkers = ['merlin']
" BEGIN coc.vim stuff
" TextEdit might fail if hidden is not set.
set hidden
" Some servers have issues with backup files, see #649.
set nobackup
set nowritebackup
" Give more space for displaying messages.
set cmdheight=2
" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable
" delays and poor user experience.
set updatetime=300
" Don't pass messages to |ins-completion-menu|.
set shortmess+=c
" Always show the signcolumn, otherwise it would shift the text each time
" diagnostics appear/become resolved.
if has("patch-8.1.1564")
" Recently vim can merge signcolumn and number column into one
set signcolumn=number
else
set signcolumn=yes
endif
" Use tab for trigger completion with characters ahead and navigate.
" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by
" other plugin before putting this into your config.
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Use <c-space> to trigger completion.
inoremap <silent><expr> <c-space> coc#refresh()
" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current
" position. Coc only does snippet and additional edit on confirm.
" <cr> could be remapped by other vim plugin, try `:verbose imap <CR>`.
if exists('*complete_info')
inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>"
else
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
endif
" Use `[g` and `]g` to navigate diagnostics
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" GoTo code navigation.
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window.
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
else
call CocAction('doHover')
endif
endfunction
" Highlight the symbol and its references when holding the cursor.
autocmd CursorHold * silent call CocActionAsync('highlight')
" Symbol renaming.
nmap <leader>rn <Plug>(coc-rename)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder.
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Applying codeAction to the selected region.
" Example: `<leader>aap` for current paragraph
xmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" Remap keys for applying codeAction to the current buffer.
nmap <leader>ac <Plug>(coc-codeaction)
" Apply AutoFix to problem on the current line.
nmap <leader>qf <Plug>(coc-fix-current)
" Map function and class text objects
" NOTE: Requires 'textDocument.documentSymbol' support from the language server.
xmap if <Plug>(coc-funcobj-i)
omap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap af <Plug>(coc-funcobj-a)
xmap ic <Plug>(coc-classobj-i)
omap ic <Plug>(coc-classobj-i)
xmap ac <Plug>(coc-classobj-a)
omap ac <Plug>(coc-classobj-a)
" Use CTRL-S for selections ranges.
" Requires 'textDocument/selectionRange' support of LS, ex: coc-tsserver
nmap <silent> <C-s> <Plug>(coc-range-select)
xmap <silent> <C-s> <Plug>(coc-range-select)
" Add `:Format` command to format current buffer.
command! -nargs=0 Format :call CocAction('format')
" Add `:Fold` command to fold current buffer.
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" Add `:OR` command for organize imports of the current buffer.
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
" Add (Neo)Vim's native statusline support.
" NOTE: Please see `:h coc-status` for integrations with external plugins that
" provide custom statusline: lightline.vim, vim-airline.
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" Mappings using CoCList:
" Show all diagnostics.
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions.
nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
" Show commands.
nnoremap <silent> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document.
nnoremap <silent> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols.
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list.
nnoremap <silent> <space>p :<C-u>CocListResume<CR>
" END coc.vim stuff
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment