1
0
Fork 0
dotfiles/.config/nvim/init.vim
Lucas Sta Maria c293767edf
rewrite nvim config to lua
Signed-off-by: Lucas Sta Maria <lucas.stamaria@gmail.com>
2022-03-20 23:52:02 -04:00

242 lines
6.2 KiB
VimL

filetype plugin indent on
set tabstop=4
set shiftwidth=4
set scrolloff=1
set expandtab
set smartindent
set autoindent
set cursorline
set number
set rnu
set nowrap
set inccommand=split
set updatetime=100
set mouse+=a
" File settings
au BufReadPost,BufNewFile *.md setlocal tw=80 | PencilHard | nnoremap <C-c> :MarkdownPreview<CR>
au BufReadPost,BufNewFile *.tex nnoremap <C-c> :w<CR>:!pdflatex main.tex<CR>
au BufReadPost,BufNewFile *.md,*.tex setlocal spell | set spelllang=en_US | inoremap <C-l> <c-g>u<ESC>[s1z=`]a<c-g>u
au BufReadPost,BufNewFile *.js,*.ts set sw=2 | set ts=2
" nnoremap : ;
" nnoremap ; :
nnoremap <space> :
tnoremap <silent> <ESC> <C-\><C-n>
nmap <C-z>z :Goyo 80<CR>
nmap <C-z>q :Goyo!<CR>
nnoremap <silent> <C-p> :RainbowToggle<CR>
nnoremap <silent> <C-q> <C-w>s<C-w>j:resize 20<CR>:terminal<CR><S-i>
" Telescope
nnoremap <C-t> :Telescope find_files<CR>
nnoremap <C-h>d :Telescope live_grep<CR>
nnoremap <C-h>u :Telescope lsp_definitions<CR>
nnoremap <C-h>e :Telescope<CR>git_
nnoremap <C-h>h :Telescope<CR>
" lsp
nnoremap <C-x>s :lua vim.lsp.diagnostic.show_line_diagnostics()<CR>
nnoremap <C-x>h :lua vim.lsp.buf.hover()<CR>
nnoremap <C-x>c :lua vim.lsp.buf.code_action()<CR>
nnoremap <C-x>r :lua vim.lsp.buf.rename()<CR>
" Tree
nnoremap <C-s> :NvimTreeToggle<CR>
" Barbar
nnoremap <silent> J :BufferPrevious<CR>
nnoremap <silent> K :BufferNext<CR>
nnoremap <silent> <C-j> :BufferMovePrevious<CR>
nnoremap <silent> <C-k> :BufferMoveNext<CR>
nnoremap <silent> <C-b>q :BufferClose<CR>
" Git Signs
nnoremap <silent> <C-n>b :lua require"gitsigns".blame_line()<CR>
call plug#begin('~/.config/nvim/plugged')
Plug 'wbthomason/packer.nvim'
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
Plug 'ayu-theme/ayu-vim'
Plug 'lewis6991/gitsigns.nvim', {'branch': 'main'}
Plug 'vim-airline/vim-airline'
Plug 'mattn/emmet-vim'
Plug 'reedes/vim-pencil'
Plug 'nvim-lua/popup.nvim'
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'neovim/nvim-lspconfig'
Plug 'hrsh7th/nvim-compe'
Plug 'junegunn/goyo.vim'
Plug 'junegunn/limelight.vim'
Plug 'camspiers/animate.vim'
Plug 'Yggdroot/indentLine'
Plug 'frazrepo/vim-rainbow'
Plug 'kyazdani42/nvim-web-devicons'
Plug 'kyazdani42/nvim-tree.lua'
Plug 'romgrk/barbar.nvim'
Plug 'elkowar/yuck.vim'
Plug 'SirVer/ultisnips'
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' }
call plug#end()
" VimTex
let g:tex_flavor='latex'
let g:vimtex_view_method='zathura'
let g:vimtex_quickfix_mode=0
set conceallevel=0
" Ultisnips
let g:UltiSnipsExpandTrigger = '<tab>'
let g:UltiSnipsJumpForwardTrigger = '<tab>'
let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'
let g:UltiSnipsSnippetDirectories=[$HOME.'/.config/nvim/UltiSnips']
" Markdown Preview
let g:mkdp_auto_close = 0
let g:mkdp_browser = 'surf'
" Compe
let g:compe = {}
let g:compe.enabled = v:true
let g:compe.autocomplete = v:true
let g:compe.debug = v:false
let g:compe.min_length = 1
let g:compe.preselect = 'enable'
let g:compe.throttle_time = 80
let g:compe.source_timeout = 200
let g:compe.incomplete_delay = 400
let g:compe.max_abbr_width = 100
let g:compe.max_kind_width = 100
let g:compe.max_menu_width = 100
let g:compe.documentation = v:true
let g:compe.source = {}
let g:compe.source.path = v:true
let g:compe.source.buffer = v:true
let g:compe.source.calc = v:true
let g:compe.source.nvim_lsp = v:true
let g:compe.source.nvim_lua = v:true
let g:compe.source.vsnip = v:true
let g:compe.source.ultisnips = v:true
" gitsigns
lua << EOF
require('gitsigns').setup {
signs = {
add = {hl = 'GitSignsAdd', text = '+', numhl='GitSignsAddNr', linehl='GitSignsAddLn' },
change = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' },
delete = {hl = 'GitSignsDelete', text = '-', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' },
topdelete = {hl = 'GitSignsDelete', text = '-', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' },
changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' },
}
}
EOF
" indentLine
let g:indentLine_char = '⎸'
let g:indentLine_setConceal = 0
" Tree
let g:nvim_tree_width = 35
lua << EOF
require'lspconfig'.rust_analyzer.setup{}
EOF
lua << EOF
require'lspconfig'.ccls.setup{
init_options = {
cache = {
directory = "/home/priime/.cache/ccls/";
}
}
}
EOF
lua << EOF
require'lspconfig'.tsserver.setup{}
EOF
lua << EOF
require'lspconfig'.java_language_server.setup{
cmd = { "/usr/share/java/java-language-server/lang_server_linux.sh" }
}
EOF
lua << EOF
require 'nvim-treesitter.configs'.setup {
highlight = {
enable = true,
},
}
EOF
lua << EOF
require'lspconfig'.vuels.setup{
on_attach = function(client)
client.resolved_capabilities.document_formatting = true
end;
}
EOF
lua << EOF
require'lspconfig'.racket_langserver.setup{}
EOF
fun! Start()
" Don't run if: we have commandline arguments, we don't have an empty
" buffer, if we've not invoked as vim or gvim, or if we'e start in insert mode
if argc() || line2byte('$') != -1 || v:progname !~? '^[-gmnq]\=vim\=x\=\%[\.exe]$' || &insertmode
return
endif
" Start a new buffer ...
enew
" ... and set some options for it
setlocal
\ bufhidden=wipe
\ buftype=nofile
\ nobuflisted
\ nocursorcolumn
\ nocursorline
\ nolist
\ nonumber
\ noswapfile
\ norelativenumber
" Now we can just write to the buffer, whatever you want.
call append('$', "")
for line in split(system('cat /home/priime/.config/nvim/startscreen.vimstart'), '\n')
call append('$', '' . l:line)
endfor
" No modifications to this buffer
setlocal nomodifiable nomodified
" When we go to insert mode start a new buffer, and start insert
nnoremap <buffer><silent> e :enew<CR>
nnoremap <buffer><silent> i :enew <bar> startinsert<CR>
nnoremap <buffer><silent> o :enew <bar> startinsert<CR>
" simple
" set syntax=erlang
" red leaves
" set syntax=html
" blue leaves
set syntax=yaml
endfun
" Run after "doing all the startup stuff"
autocmd VimEnter * call Start()
syntax on
set termguicolors
set t_Co=256
let ayucolor="dark"
colorscheme ayu