Last active
September 22, 2020 23:57
-
-
Save harrygallagher4/d64532090af720059f19880e74f7dfd1 to your computer and use it in GitHub Desktop.
nvimrc
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
Show hidden characters
{ | |
"npm.binPath": "/Users/harry/.asdf/installs/nodejs/12.17.0/bin/npm", | |
"eslint.nodePath": "/Users/harry/.asdf/installs/nodejs/12.17.0/bin/node", | |
"coc.preferences.bracketEnterImprove": false, | |
"coc.preferences.enableFloatHighlight": true, | |
"coc.preferences.colorSupport": true, | |
"coc.source.around.enable": false, | |
"coc.source.buffer.enable": false, | |
"coc.source.file.ignoreHidden": false, | |
"diagnostic.checkCurrentLine": false, | |
"diagnostic.enableHighlightLineNumber": true, | |
"diagnostic.enableMessage": "always", | |
"diagnostic.maxWindowHeight": 12, | |
"diagnostic.messageDelay": 500, | |
"diagnostic.messageTarget": "float", | |
"diagnostic.separateRelatedInformationAsDiagnostics": true, | |
"diagnostic.virtualText": false, | |
"diagnostic.virtualTextCurrentLineOnly": true, | |
"prettier.semi": false, | |
"prettier.tabWidth": 2, | |
"prettier.singleQuote": true, | |
"prettier.disableSuccessMessage": true, | |
"signature.enable": true, | |
"signature.floatMaxWidth": 60, | |
"signature.hideOnTextChange": false, | |
"signature.maxWindowHeight": 12, | |
"signature.target": "float", | |
"signature.triggerSignatureWait": 50, | |
"snippets.loadFromExtensions": true, | |
"snippets.shortcut": "S", | |
"snippets.snipmate.enable": false, | |
"snippets.ultisnips.enable": true, | |
"snippets.extends": { | |
"javascriptreact": ["javascript"], | |
"typescriptreact": ["typescript"], | |
"typescript": ["javascript"] | |
}, | |
"suggest.acceptSuggestionOnCommitCharacter": true, | |
"suggest.autoTrigger": "always", | |
"suggest.enablePreselect": true, | |
"suggest.enablePreview": true, | |
"suggest.floatEnable": true, | |
"suggest.maxCompleteItemCount": 500, | |
"suggest.minTriggerInputLength": 1, | |
"suggest.noselect": false, | |
"suggest.snippetIndicator": " \uf63d", | |
"suggest.timeout": 2000, | |
/* Language Specific */ | |
"tsserver.enableJavascript": true, | |
"tsserver.implicitProjectConfig.checkJs": false, | |
"tsserver.implicitProjectConfig.experimentalDecorators": true, | |
"typescript.implementationsCodeLens.enable": true, | |
"typescript.referencesCodeLens.enable": true, | |
"typescript.showUnused": false, | |
"javascript.implementationsCodeLens.enable": true, | |
"javascript.referencesCodeLens.enable": true, | |
"javascript.showUnused": false, | |
"javascript.suggest.enabled": true, | |
"javascript.suggestionActions.enabled": true, | |
"codeLens.enable": false, | |
/* * * * * * * * * * */ | |
"vimlsp.suggest.fromRuntimepath": true, | |
"vimlsp.suggest.fromVimruntime": true, | |
"coc.preferences.rootPatterns": [ | |
".envrc", | |
".fdignore", | |
".git", | |
".gitignore", | |
".hg", | |
".projections.json", | |
".vim", | |
"jsconfig.json", | |
"node_modules", | |
"package-lock.json", | |
"package.json", | |
"project.clj", | |
"shadow-cljs.edn", | |
"tsconfig.json" | |
], | |
"languageserver": { | |
"clojure-lsp": { | |
"command": "clojure-lsp", | |
// "args": ["-c", "~/.zinit/plugins/snoe---clojure-lsp/clojure-lsp"], | |
"filetypes": ["clojure"], | |
"rootPatterns": ["project.clj"], | |
"additionalSchemes": ["jar", "zipfile"], | |
"trace.server": "verbose", | |
"initializationOptions": { | |
"ignore-classpath-directories": true, | |
// "source-paths": ["src"], | |
// "cljfmt": { | |
// "indents": { | |
// "#.*": [["block", 0]], | |
// "ns": [["inner", 0], ["inner", 1]], | |
// "and": [["inner", 0]], | |
// "or": [["inner", 0]], | |
// "are": [["inner", 0]] | |
// }}, | |
"macro-defs": { | |
"clojure.core/dotimes": ["bindings", "bound-elements"] | |
} | |
} | |
} | |
}, | |
"suggest.completionItemKindLabels": { | |
//"class": "\uf0e8", | |
//"color": "\ue22b", | |
//"constant": "\uf8fe", | |
//"enum": "\uf435", | |
//"enumMember": "\uf02b", | |
//"event": "\ufacd", | |
//"field": "\uf9be", | |
//"file": "\uf723", | |
//"folder": "\uf114", | |
//"function": "\uf794", | |
//"interface": "\uf417", | |
//"keyword": "\uf1de", | |
//"method": "\uf794", | |
//"module": "\uf40d", | |
//"operator": "\u03a8", | |
//"property": "\ue624", | |
//"reference": "\ufa46", | |
//"snippet": "\ue60b", | |
//"struct": "\ufb44", | |
//"text": "\ue612", | |
//"typeParameter": "\uf728", | |
//"unit": "\uf475", | |
//"value": "\uf89f", | |
//"variable": "\ue79b", | |
//"default": "\uf29c" | |
}, | |
/* | |
module | |
nf-mdi-code-braces | |
f668 | |
*/ | |
/*"cSpell.ignoreWords": [ | |
"cmss", | |
"minecraft", | |
"shopify", | |
"squarespace" | |
]*/ | |
} |
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
" vim: foldmethod=marker foldlevel=2 | |
set nocompatible | |
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 --sync | source $MYVIMRC | |
endif | |
set termguicolors | |
set background=dark | |
let base16colorspace=256 | |
let g:vim_jsx_pretty_colorful_config = 1 | |
let g:rainbow_active = 1 | |
" vim-plug {{{1 | |
call plug#begin('~/.config/nvim/plugins') | |
Plug '~/.config/nvim/localplugin' | |
Plug '~/.config/nvim/plugins/fzf-ghq' | |
Plug '~/Projects/base16/build/templates/vim' | |
"Plug 'chriskempson/base16-vim' | |
" Functionality | |
Plug '/usr/local/opt/fzf' | |
Plug 'andymass/vim-matchup' | |
Plug 'editorconfig/editorconfig-vim' | |
Plug 'honza/vim-snippets' | |
Plug 'junegunn/fzf.vim' | |
Plug 'junegunn/goyo.vim' | |
Plug 'junegunn/vim-easy-align' | |
Plug 'junegunn/vim-slash' | |
Plug 'neoclide/coc.nvim' | |
Plug 'tpope/vim-surround' | |
Plug 'tpope/vim-commentary' | |
Plug 'Townk/vim-autoclose' | |
Plug 'skywind3000/asynctasks.vim' | |
Plug 'skywind3000/asyncrun.vim' | |
Plug 'rbgrouleff/bclose.vim' | |
Plug 'francoiscabrol/ranger.vim' | |
"Plug 'vimwiki/vimwiki' | |
" Clojure gets its own section because it requires so many plugins | |
"Plug 'luochen1990/rainbow' | |
Plug 'kovisoft/paredit', { 'for': 'clojure' } | |
Plug 'tpope/vim-fireplace', { 'for': 'clojure' } | |
Plug 'venantius/vim-cljfmt', { 'for': 'clojure' } | |
Plug 'guns/vim-clojure-static', { 'for': 'clojure' } | |
Plug 'brandonvin/vim-clojure-highlight', { 'for': 'clojure' } | |
Plug 'eraserhd/parinfer-rust', { 'for': 'clojure', | |
\ 'do': 'cargo build --release' } | |
Plug 'darfink/vim-plist' | |
Plug 'neoclide/jsonc.vim' | |
Plug 'sheerun/vim-polyglot' | |
" Interface | |
Plug 'airblade/vim-gitgutter' | |
Plug 'mhinz/vim-startify' | |
Plug 'ryanoasis/vim-devicons' | |
Plug 'liuchengxu/vista.vim' | |
Plug 'tpope/vim-vinegar' | |
"Plug 'sickill/vim-monokai' | |
"Plug 'patstockwell/vim-monokai-tasty' | |
"Plug 'easymotion/vim-easymotion' | |
"Plug 'Soares/base16.nvim' | |
"Plug 'fatih/molokai' | |
call plug#end() | |
" }}} | |
filetype plugin indent on | |
let mapleader = "\<Space>" | |
augroup colorfix | |
autocmd! | |
autocmd ColorScheme base16* call harryg#colors#customize_base16() | |
augroup END | |
if filereadable(expand("~/.vimrc_background")) | |
let base16colorspace=256 | |
source ~/.vimrc_background | |
endif | |
augroup custom_filetypes | |
autocmd! | |
autocmd BufNewFile,BufRead *.prisma set filetype=graphql | |
autocmd BufRead coc-settings.json set filetype=jsonc | |
augroup END | |
set backupdir=~/.config/nvim/.backup " store backup files | |
set directory=~/.config/nvim/.backup " store swap files | |
set undodir=~/.config/nvim/.undofiles " store undo files | |
set autoread " read changes to unmodified buffers | |
set backspace=indent,eol,start " make backspace work in insert mode | |
set cursorline | |
set eadirection=hor | |
set expandtab " tab -> spaces | |
set hidden " keep buffers around when closed | |
set hlsearch " highlight search matches | |
set ignorecase " ignore case in search | |
set incsearch " show search matches while typing | |
set linebreak " wrap at words | |
set mouse=a | |
set nobackup | |
set noequalalways " don't resize windows when I open a new one | |
set nowrap | |
set number " show line numbers | |
set numberwidth=4 | |
set pumheight=15 | |
set scrolloff=3 | |
set shiftwidth=4 | |
set showcmd " show commands in progress | |
set signcolumn=auto | |
set smartcase " don't ignore case when we include an upper-case letter | |
set smarttab | |
set softtabstop=4 | |
set splitbelow | |
set splitright | |
set tabstop=4 | |
set undofile | |
set wildmenu " use menu for tab completion | |
set wildmode=longest,full " don't use menu for first completion | |
set writebackup | |
let g:ranger_map_keys = 0 | |
let g:ranger_replace_netrw = 1 | |
let g:ranger_command_override = | |
\ 'TERM="xterm-kitty" ranger --cmd "set preview_images=false"' | |
let g:EasyMotion_do_mapping = 0 | |
let g:asynctasks_term_pos = 'bottom' | |
let g:asynctasks_term_focus = 0 | |
let g:asynctasks_term_reuse = 1 | |
let g:asynctasks_term_rows = 10 | |
let g:asynctasks_term_cols = 80 | |
let g:netrw_banner = 0 | |
let g:netrw_browse_split = 4 | |
let g:netrw_winsize = 15 | |
let g:startify_change_to_dir = 0 | |
let g:startify_fortune_use_unicode = 1 | |
let g:startify_session_dir = '~/.config/nvim/sessions' | |
let g:startify_bookmarks = [ | |
\ {',': '~/.config/nvim/init.vim'}, | |
\ {'<': '~/.config/nvim/localplugin'}, | |
\ {'z': '~/.zshrc' }, | |
\ {'d': '.'}, | |
\ {'K': '~/.config/kitty/kitty.conf'}, | |
\ {'I': '~/.config/kitty/theme.conf'}] | |
let g:startify_lists = [ | |
\ { 'type': 'dir', 'header': [' MRU '. getcwd()] }, | |
\ { 'type': 'files', 'header': [' MRU'] }, | |
\ { 'type': 'sessions', 'header': [' Sessions'] }, | |
\ { 'type': 'bookmarks', 'header': [' Bookmarks'] }] | |
let g:matchup_matchparen_offscreen = {} | |
let g:matchup_matchparen_deferred = 1 | |
let g:matchup_matchparen_pumvisible = 0 | |
let g:matchup_matchparen_hi_background = 0 | |
let g:matchup_matchparen_hi_surround_always = 0 | |
let g:fireplace_cljs_repl = '(shadow/repl :app)' | |
let g:gitgutter_enabled = 0 | |
let g:gitgutter_map_keys = 0 | |
let g:gitgutter_grep = 'rg --color never' | |
let g:rainbow_conf = { | |
\ 'guifgs': ['#a6e22e', | |
\ '#66d9ef', | |
\ '#f4bf75', | |
\ '#ae81ff', | |
\ '#a1efe4', | |
\ '#f92672'], | |
\ 'ctermfgs': ['117', | |
\ '84', | |
\ '215', | |
\ '212', | |
\ '203', | |
\ '228'] } | |
let $FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS . ' --reverse --margin=0,0' | |
let g:fzf_layout = { | |
\ 'window': { | |
\ 'width': 0.9, | |
\ 'height': 0.6, | |
\ 'highlight': 'VertSplit', | |
\ 'border': 'sharp' | |
\ }} | |
let g:fzf_action = { | |
\ 'ctrl-i': 'vsplit', | |
\ 'ctrl-o': 'split' | |
\ } | |
let g:vista_default_executive = 'coc' | |
let g:vista#executives = ['coc'] | |
let g:vista_blink = [0, 0] | |
let g:vista_echo_cursor_strategy = 'floating_win' | |
" 'enable plugin' type stuff | |
let g:paredit_leader = '\' | |
let g:paredit_smartjump = 1 | |
" autocommands {{{3 | |
augroup netrw_map | |
autocmd! | |
autocmd filetype netrw call harryg#netrw_map() | |
augroup END | |
augroup harry | |
autocmd! | |
autocmd BufRead,BufNewFile *.adoc set filetype=asciidoc | |
autocmd TermOpen * set filetype=term | |
autocmd WinEnter term://* call harryg#maybe_start_terminal_insert() | |
autocmd FileType netrw call harryg#set_explorer_window() | |
autocmd FileType netrw set signcolumn=yes:1 | |
augroup END | |
" }}} | |
" commands {{{1 | |
command! -nargs=0 Cheat :call harryg#cheat_float() | |
" }}} | |
" maps {{{1 | |
" windows | |
nnoremap <c-x> :wincmd c<cr> | |
tnoremap <c-x> <c-\><c-n>:wincmd c<cr> | |
nnoremap <c-k> <c-w>k | |
inoremap <c-k> <esc><c-w>k | |
tnoremap <expr> <c-k> harryg#is_fzf() ? "<c-p>" : "<c-\><c-n><c-w>k" | |
nnoremap <c-j> <c-w>j | |
inoremap <c-j> <esc><c-w>j | |
tnoremap <expr> <c-j> harryg#is_fzf() ? "<c-n>" : "<c-\><c-n><c-w>j" | |
nnoremap <c-h> <c-w>h | |
inoremap <c-h> <esc><c-w>h | |
tnoremap <expr> <c-h> harryg#is_fzf() ? "<esc>" : "<c-\><c-n><c-w>h" | |
nnoremap <c-l> <c-w>l | |
inoremap <c-l> <esc><c-w>l | |
tnoremap <expr> <c-l> harryg#is_fzf() ? "<esc>" : "<c-\><c-n><c-w>l" | |
nnoremap <m-j> gt | |
nnoremap <m-k> gT | |
nnoremap <m-x> :tabclose<cr> | |
nnoremap <silent> <leader>r <c-w>_ | |
nnoremap <silent> <leader>R <c-w>\| | |
nnoremap ; : | |
" use H and L for start/end of line because ^/$ | |
" are backwards and annoying to reach | |
nnoremap H ^ | |
nnoremap L $ | |
vnoremap H ^ | |
vnoremap L $ | |
onoremap H ^ | |
onoremap L $ | |
nmap ga <Plug>(EasyAlign) | |
" FZF | |
nnoremap <silent> <leader>p :Files<cr> | |
nnoremap <silent> <leader>P :Commands<cr> | |
nnoremap <silent> <leader>o :Buffers<cr> | |
nnoremap <silent> <leader>t :Rg<cr> | |
nnoremap <silent> <leader>0 :AsyncTaskFZF<cr> | |
nnoremap <silent> <leader>i :Vista finder fzf:coc<cr> | |
nnoremap <silent> <leader>/ :Lines<cr> | |
nnoremap <silent> <leader>? :BLines<cr> | |
nnoremap <silent> <leader>e :call harryg#open_or_go_to_explorer()<cr> | |
inoremap <expr> <c-j> pumvisible() ? "\<c-n>" : "\<c-j>" | |
inoremap <expr> <c-k> pumvisible() ? "\<c-p>" : "\<c-k>" | |
cnoremap <expr> <c-j> pumvisible() ? "\<c-n>" : "\<c-j>" | |
cnoremap <expr> <c-k> pumvisible() ? "\<c-p>" : "\<c-k>" | |
nnoremap <leader><tab> :b #<cr> | |
nnoremap <leader>w :w<cr> | |
" meta-nvim binds | |
nnoremap <leader>, :e ~/.config/nvim/init.vim<cr> | |
nnoremap <leader>. :Startify<cr> | |
nnoremap <plug>(slash-after) zz | |
" }}} | |
" coc.nvim {{{3 | |
set updatetime=100 | |
set shortmess+=c | |
" 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. | |
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" | |
" Use `[g` and `]g` to navigate diagnostics | |
nmap <silent> [g <Plug>(coc-diagnostic-prev) | |
nmap <silent> ]g <Plug>(coc-diagnostic-next) | |
" Remap keys for gotos | |
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> | |
nnoremap <silent> gh :call <SID>show_documentation()<CR> | |
function! s:show_documentation() | |
if &filetype == 'vim' | |
execute 'vertical help '.expand('<cword>') | |
else | |
call CocAction('doHover') | |
endif | |
endfunction | |
" Highlight symbol under cursor on CursorHold | |
"autocmd CursorHold * silent call CocActionAsync('highlight') | |
"autocmd CursorHold * silent execute "normal \<plug>(matchup-hi-surround)" | |
" use tab to navigate to next location in snippets | |
let g:coc_snippet_next = '<tab>' | |
let g:coc_snippet_prev = '<s-tab>' | |
nnoremap <silent> <leader>co :<C-u>CocList outline<cr> | |
nnoremap <silent> <leader>cs :<C-u>CocList -I symbols<cr> | |
nnoremap <silent> <leader>cl :<C-u>CocList locationlist<cr> | |
nnoremap <silent> <leader>cc :<C-u>CocList commands<cr> | |
" rename the current word in the cursor | |
nmap <leader>cr <Plug>(coc-rename) | |
nmap <leader>cf <Plug>(coc-format-selected) | |
vmap <leader>cf <Plug>(coc-format-selected) | |
" run code actions | |
vmap <leader>ca <Plug>(coc-codeaction-selected) | |
nmap <leader>ca <Plug>(coc-codeaction-selected) | |
" add commands for actions | |
command! -nargs=0 Format :call CocAction('format') | |
command! -nargs=? Fold :call CocAction('fold', <f-args>) | |
command! -nargs=0 Organize :call CocAction('runCommand', 'editor.action.organizeImport') | |
" Introduce function text object | |
xmap if <Plug>(coc-funcobj-i) | |
xmap af <Plug>(coc-funcobj-a) | |
omap if <Plug>(coc-funcobj-i) | |
omap af <Plug>(coc-funcobj-a) | |
" }}} | |
" statusline {{{2 | |
set laststatus=2 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment