1
1
Fork 0
dotfiles/nvim/init.vim
Ava Gaiety Wroten df2af031e6 Vim updates
2022-04-09 15:48:57 -05:00

247 lines
5.8 KiB
VimL

"" Encoding
set encoding=utf8
"" Disable modeline
set nomodeline
"" System undo levels
set undofile
set undolevels=100
" Line Numbers
set number
set relativenumber
"" Stop word wrapping
set nowrap
"" Hide Buffers
set hidden
"" Statusline
set laststatus=0
"" Top/Bottom scroll padding
set scrolloff=3
set sidescrolloff=5
" Syntax Colors
set termguicolors
" Misc
set title
" Indentation
set softtabstop=2
set tabstop=2
set shiftwidth=2
set autoindent
" Syntax
syntax on
" Save on close
set confirm
" Use system clipboard
set clipboard=unnamedplus
" Faster scrolling
set ttyfast
" Search
set hlsearch
set smartcase
set showmatch
" Undo
set undolevels=1000
" Filetypes
filetype plugin on
" auto-install vim-plug
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
autocmd VimEnter * PlugInstall | source $MYVIMRC
endif
call plug#begin('~/.config/nvim/autoload/plugged')
" LSP Support
Plug 'neovim/nvim-lspconfig'
Plug 'williamboman/nvim-lsp-installer'
" Autocompletion
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-path'
Plug 'saadparwaiz1/cmp_luasnip'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-nvim-lua'
" Snippets
Plug 'L3MON4D3/LuaSnip'
Plug 'rafamadriz/friendly-snippets'
Plug 'VonHeikemen/lsp-zero.nvim'
Plug 'nvim-treesitter/nvim-treesitter', { 'do': ':TSUpdate' }
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'BurntSushi/ripgrep'
Plug 'sharkdp/fd'
Plug 'baliestri/aura-theme', { 'branch': 'feat/neovim-port', 'rtp': 'packages/neovim' }
Plug 'lukelbd/vim-toggle'
Plug 'kyazdani42/nvim-tree.lua'
Plug 'dense-analysis/ale'
Plug 'preservim/nerdcommenter'
Plug 'akinsho/bufferline.nvim', { 'tag': '*' }
Plug 'voldikss/vim-floaterm'
Plug 'skywind3000/asyncrun.vim'
Plug 'vim-test/vim-test'
Plug 'folke/which-key.nvim'
Plug 'mhinz/vim-startify'
call plug#end()
" Use aura theme installed above
colorscheme aura-soft-dark
" - Core Key Bindings -
"" Map Leader to spacebar
let mapleader=" "
"" Shortcut to save
nnoremap <Leader>s :w<CR>
"" Shortcut to close buffer
nnoremap <Leader>w :bd<CR>
"" Moving current lines up/down
nnoremap <Leader>k :<c-u>execute 'move -1-'. v:count1<cr>
nnoremap <Leader>j :<c-u>execute 'move +'. v:count1<cr>
"" Buffers Next/Previous
nnoremap <Tab> :bnext<CR>
nnoremap <S-Tab> :bprev<CR>
"" Shortcut to close buffer
nnoremap <Esc><Esc> :bd<CR>
"" Shortcut to reopen closed buffer
nmap <Leader><Leader> <c-^>
"" Toggle
let g:toggle_map = '<C-a>'
"" Tree
lua require'nvim-tree'.setup {}
let g:nvim_tree_icons = {
\ 'default': "",
\ 'symlink': "",
\ 'git': {
\ 'unstaged': "✗",
\ 'staged': "✓",
\ 'unmerged': "",
\ 'renamed': "➜",
\ 'untracked': "★",
\ 'deleted': "R",
\ 'ignored': "◌"
\ },
\ 'folder': {
\ 'arrow_open': ">",
\ 'arrow_closed': "<",
\ 'default': "",
\ 'open': "",
\ 'empty': "=",
\ 'empty_open': "==",
\ 'symlink': "-",
\ 'symlink_open': "--",
\ }
\ }
nnoremap <Leader><Tab> :NvimTreeToggle<CR>
"" Lint
let b:ale_fixers = ['prettier', 'eslint']
"" Telescope
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fs <cmd>Telescope spell_suggest<cr>
nnoremap <leader>fr <cmd>Telescope registers<cr>
nnoremap <leader>fo <cmd>Telescope oldfiles<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>/ <cmd>Telescope current_buffer_fuzzy_find<cr>
" Bufferline
lua << EOF
require("bufferline").setup {
options = {
show_buffer_close_icons = false,
diagnostics = "nvim_lsp"
}
}
EOF
" Floating Terminal
nnoremap <leader>` <cmd>:FloatermToggle<cr>
" Async Run (:AsyncRun)
let g:asyncrun_open=1
nnoremap <leader>a :AsyncRun -mode=term -pos=floaterm
nnoremap <leader>ga <cmd>:AsyncRun -mode=term -pos=floaterm git add -p<cr>
nnoremap <leader>gc :AsyncRun -mode=term -pos=floaterm git commit -m ""
" Comment italics
highlight Comment cterm=italic gui=italic
" LSP Zero
lua << EOF
require'lspconfig'.pyright.setup{}
local lsp = require('lsp-zero')
lsp.preset('recommended')
lsp.setup()
EOF
" vim-test
let test#strategy = "floaterm"
nmap <silent> <leader>t :TestNearest<CR>
nmap <silent> <leader>T :TestFile<CR>
nmap <silent> <leader>ts :TestSuite<CR>
nmap <silent> <leader>tl :TestLast<CR>
nmap <silent> <leader>tv :TestVisit<CR>
" which-key
nmap <silent> <leader>? :WhichKey<CR>
lua << EOF
require("which-key").setup {}
EOF
"" vim-startify
let g:startify_custom_header = [
\ 'Gaiety | 2022',
\ '▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄',
\ '██░▄▄▀█░▄▄█░▄▀▄░█▀▄▄▀█░▄▄▄█▀▄▄▀█░▄▄▀█░▄▄▄█▀▄▄▀█░▄▄▀██',
\ '██░██░█░▄▄█░█▄█░█░██░█░█▄▀█░██░█░▀▀▄█░█▄▀█░██░█░██░██',
\ '██░▀▀░█▄▄▄█▄███▄██▄▄██▄▄▄▄██▄▄██▄█▄▄█▄▄▄▄██▄▄██▄██▄██',
\ '▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀',
\ '',
\ 'MAPPING ACTION',
\ '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━',
\ '<Space> Leader',
\ '<Leader>? List Bindings',
\ '',
\ ]
let g:startify_change_to_dir = 0