summaryrefslogtreecommitdiff
path: root/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'nvim')
-rw-r--r--nvim/init.vim150
1 files changed, 105 insertions, 45 deletions
diff --git a/nvim/init.vim b/nvim/init.vim
index 6582d6a..785fe5f 100644
--- a/nvim/init.vim
+++ b/nvim/init.vim
@@ -3,6 +3,7 @@ set ff=unix
set colorcolumn=80
set list
set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»
+set cmdheight=2
if has('win32')
source $VIMRUNTIME/mswin.vim
endif
@@ -21,47 +22,56 @@ Plug 'tpope/vim-fugitive'
"Fuzzy file search
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
+Plug 'junegunn/fzf.vim'
"tab completion
Plug 'Shougo/denite.nvim'
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'Shougo/echodoc.vim'
Plug 'deoplete-plugins/deoplete-jedi'
+Plug 'raimon49/requirements.txt.vim'
-Plug 'xolox/vim-misc'
-Plug 'xolox/vim-lua-ftplugin'
-Plug 'VaiN474/vim-etlua'
-Plug 'leafo/moonscript-vim'
-Plug 'teal-language/vim-teal'
+" Scala tab completion
+Plug 'nvim-lua/plenary.nvim'
+Plug 'scalameta/nvim-metals'
-Plug 'whonore/Coqtail'
+" CSV formatting
+Plug 'chrisbra/csv.vim'
+
+"Plug 'xolox/vim-misc'
+"Plug 'xolox/vim-lua-ftplugin'
+"Plug 'VaiN474/vim-etlua'
+"Plug 'leafo/moonscript-vim'
+"Plug 'teal-language/vim-teal'
+
+"Plug 'whonore/Coqtail'
"Color schemes
-Plug 'mhartington/oceanic-next'
-Plug 'vim-scripts/Wombat'
-Plug 'zeis/vim-kolor'
-Plug 'alessandroyorba/despacio'
-Plug 'alessandroyorba/alduin'
-Plug 'tomasr/molokai'
-Plug 'sainnhe/vim-color-forest-night'
-Plug 'sts10/vim-pink-moon'
-Plug 'severij/vadelma'
-Plug 'kkpmw/sacredforest-vim'
-Plug 'jsit/toast.vim'
-Plug 'henrynewcomer/vim-theme-papaya'
-Plug 'sainnhe/edge'
-Plug 'kjssad/quantum.vim'
-Plug 'kyoz/purify'
-Plug 'sainnhe/vim-color-atlantis'
-Plug 'jonathanfilip/vim-lucius'
+"Plug 'mhartington/oceanic-next'
+"Plug 'vim-scripts/Wombat'
+"Plug 'zeis/vim-kolor'
+"Plug 'alessandroyorba/despacio'
+"Plug 'alessandroyorba/alduin'
+"Plug 'tomasr/molokai'
+"Plug 'sainnhe/vim-color-forest-night'
+"Plug 'sts10/vim-pink-moon'
+"Plug 'severij/vadelma'
+"Plug 'kkpmw/sacredforest-vim'
+"Plug 'jsit/toast.vim'
+"Plug 'henrynewcomer/vim-theme-papaya'
+"Plug 'sainnhe/edge'
+"Plug 'kjssad/quantum.vim'
+"Plug 'kyoz/purify'
+"Plug 'sainnhe/vim-color-atlantis'
+"Plug 'jonathanfilip/vim-lucius'
Plug 'joshdick/onedark.vim'
-Plug 'cocopon/iceberg.vim'
-Plug 'wolf-dog/sceaduhelm.vim'
-Plug 'danilo-augusto/vim-afterglow'
-Plug 'kamwitsta/mythos'
-Plug 'softmotions/vim-dark-frost-theme'
-Plug 'sainnhe/vim-color-grimoire'
-Plug 'ghifarit53/tokyonight-vim'
+"Plug 'cocopon/iceberg.vim'
+"Plug 'wolf-dog/sceaduhelm.vim'
+"Plug 'danilo-augusto/vim-afterglow'
+"Plug 'kamwitsta/mythos'
+"Plug 'softmotions/vim-dark-frost-theme'
+"Plug 'sainnhe/vim-color-grimoire'
+"Plug 'ghifarit53/tokyonight-vim'
call plug#end()
colorscheme onedark
@@ -69,13 +79,22 @@ colorscheme onedark
"deoplete
let g:deoplete#enable_at_startup = 1
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
+"autocmd CompleteDone * if pumvisible() == 0 | silent! pclose | endif
+
+" echodoc
+let g:echodoc#enable_at_startup=1
+let g:echodoc#type="floating"
+highlight link EchoDocFloat Pmenu
"python
-let g:deoplete#sources#jedi#python_path='python3'
+"let g:deoplete#sources#jedi#python_path='python3'
+let g:deoplete#sources#jedi#enable_short_types=1
let g:deoplete#sources#jedi#show_docstring=1
+call deoplete#custom#source('jedi','max_info_width',0)
+"set completeopt-=preview
"lua
-let g:lua_compiler_name='luajit'
+let g:lua_compiler_name='lua'
"let g:lua_compiler_name='lua'
let g:lua_complete_dynamic=1
au BufReadPost *.busted set syntax=lua
@@ -83,22 +102,49 @@ au BufReadPost *.spec set syntax=lua
au BufReadPost *.etlua set syntax=html
"Overwrite xolox:ftplugin's "Help" with shift-k
au BufReadPost *.lua nunmap <buffer> K
-let g:echodoc#enable_at_startup=1
+
+"scala
+augroup lsp
+ au!
+ au FileType java,scala,sbt lua m=require("metals"); mc=m.bare_config(); mc.init_options.statusBarProvider="on"; m.initialize_or_attach(mc)
+augroup end
"NERDTree config
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
\ quit | endif
+
nnoremap <C-\> :NERDTreeToggle<Cr>
nnoremap <C-r> :NERDTreeFind<Cr>
let NERDTreeMapHelp='y'
let NERDTreeMapJumpLastChild='y'
let NERDTreeMapJumpFirstChild='y'
+"NERDCommenter config
+nnoremap <C-/> :call NERDComment('x', 'toggle')<CR>
+
"Fuzzy file search
let g:fzf_layout = { 'window': {'width': 0.9, 'height': 0.6} }
-noremap <A-p> :call fzf#run(fzf#wrap({'sink': 'tabe', 'left': '20%', 'source': 'git ls-files'}))<Cr>
+noremap π :call fzf#run(fzf#wrap({'sink': 'tabe', 'left': '20%', 'source': 'git ls-files'}))<Cr>
noremap <C-p> :call fzf#run(fzf#wrap({'sink': 'vsplit', 'left': '50%', 'source': 'git ls-files'}))<Cr>
+noremap å :call fzf#run(fzf#wrap({'sink':'tabe', 'left': '20%', 'source': 'git ls-files'}))<Cr>
+command! -bang -nargs=* GAg
+ \ call fzf#vim#ag(
+ \ <q-args>,
+ \ fzf#vim#with_preview(),
+ \ <bang>0
+ \)
+
+"Fuzzy git checkout branch
+noremap <C-c> :call fzf#run(fzf#wrap({'sink': 'Git checkout', 'left':'20%', 'source': 'git branch --format "%(refname:short)"'}))<Cr>
+noremap <C-a> :call fzf#run(fzf#wrap({'sink': 'Git checkout', 'left':'50%', 'source': 'ag --nogroup --column --color --', 'preview-window':'up','preview':expand('<sfile>:p:h:h:h').'/bin/preview.sh'}))<Cr>
+
+
+"Fuzzy sbt
+function! s:VTerm(command)
+ vsplit
+ termopen(a:command)
+endfunction
"ctrl+s saves
nmap <C-s> :w<Cr>
@@ -110,6 +156,12 @@ else
vmap <C-_> <leader>c<Space>
endif
+"Set leader
+let mapleader=";"
+
+"Shortcut to modify vim config
+nnoremap <leader>ec :tabe $MYVIMRC<Cr>
+
"Move around quickly
nnoremap J 5j
nnoremap K 5k
@@ -117,15 +169,15 @@ nnoremap H 5h
nnoremap L 5l
"Navigate splits
-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
+tnoremap ˙ <C-\><C-n><C-w>h
+tnoremap ∆ <C-\><C-n><C-w>j
+tnoremap ˚ <C-\><C-n><C-w>k
+tnoremap ¬ <C-\><C-n><C-w>l
-nnoremap <A-h> <C-\><C-n><C-w>h
-nnoremap <A-j> <C-\><C-n><C-w>j
-nnoremap <A-k> <C-\><C-n><C-w>k
-nnoremap <A-l> <C-\><C-n><C-w>l
+nnoremap ˙ <C-\><C-n><C-w>h
+nnoremap ∆ <C-\><C-n><C-w>j
+nnoremap ˚ <C-\><C-n><C-w>k
+nnoremap ¬ <C-\><C-n><C-w>l
"Resize splits
"noremap <C-h> :vertical resize -5<Cr>
@@ -160,15 +212,23 @@ nnoremap <C-k> :call <SID>PushResize('k',5)<CR>
nnoremap <C-l> :call <SID>PushResize('l',5)<CR>
"Navigate tabs
-noremap <A-]> gt
-noremap <A-[> gT
+noremap ‘ gt
+noremap “ gT
"Add a semicolon at the end of the line
vnoremap <C-;> :'<,'>s/\([^;]\)$/\1;/g<Cr>
"Build in a vertical split
-noremap <C-b> :vsplit<CR>:terminal make<CR>
+noremap <C-b> :vsplit term://make<Cr>
+
+"Start a terminal
+noremap <C-t> :vsplit<CR>:terminal<CR>
+
+"Find and open in a new tab
+noremap <C-f> :Ag<Cr>
+"Restart vim (alt+1)
+noremap ¡ :source ~/.config/nvim/init.vim \| :PlugInstall<Cr>
filetype plugin indent on
syntax enable