Skip to content

Instantly share code, notes, and snippets.

@braynm
Created October 16, 2021 15:57
Show Gist options
  • Save braynm/bd518bea67896cdefa8edd66fb85ae6b to your computer and use it in GitHub Desktop.
Save braynm/bd518bea67896cdefa8edd66fb85ae6b to your computer and use it in GitHub Desktop.
neovim configuration 2021
" Plug
call plug#begin()
Plug 'ayu-theme/ayu-vim'
Plug 'morhetz/gruvbox'
Plug 'Pocco81/Catppuccino.nvim'
Plug 'junegunn/goyo.vim'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
Plug 'junegunn/vim-journal'
Plug 'junegunn/rainbow_parentheses.vim'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-fugitive'
Plug 'junegunn/gv.vim'
Plug 'airblade/vim-gitgutter'
Plug 'Yggdroot/indentLine'
Plug 'scrooloose/nerdtree'
Plug 'scrooloose/nerdcommenter'
" Elixir
Plug 'slashmili/alchemist.vim'
Plug 'elixir-editors/vim-elixir'
Plug 'mhinz/vim-mix-format'
Plug 'jiangmiao/auto-pairs'
" JavaScript
Plug 'pangloss/vim-javascript'
Plug 'moll/vim-node'
Plug 'mxw/vim-jsx'
Plug 'yuezk/vim-js'
Plug 'maxmellon/vim-jsx-pretty'
Plug 'othree/yajs.vim'
Plug 'styled-components/vim-styled-components', { 'branch': 'main' }
Plug 'w0rp/ale'
call plug#end()
" Coloring
syntax on
set background=dark
set termguicolors
"colorscheme gruvbox
"colorscheme ayu
colorscheme catppuccino
" Other configurations
filetype plugin indent on
autocmd FileType markdown setlocal shiftwidth=2 tabstop=2 softtabstop=2
set foldmethod=syntax
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
set smarttab
set autoindent
set title
set ruler
set scrolloff=8
set noswapfile
set guicursor=i:block
set encoding=utf-8
set ruler laststatus=2 showcmd showmode
set number
set relativenumber
set wrap breakindent
set incsearch ignorecase smartcase hlsearch
set list listchars=trail:»,tab:»-
set fillchars+=vert:\
set lazyredraw
" Will comment this following settings since i am not sure yet what it does.
"highlight Pmenu guibg=white guifg=black gui=bold
"highlight Comment gui=bold
"highlight Normal gui=none
" Mappings
let mapleader=" "
nmap <Tab> <C-w>w
nnoremap <C-s> <C-c>:w<Enter>
inoremap <C-s> <C-c>:w<Enter>
vnoremap <C-s> <C-c>:w<Enter>
nnoremap <silent> <leader><leader> :noh<CR>
"nnoremap <leader>r :so ~/.config/nvim/init.vim<CR>
nmap <leader>d :NERDTreeToggle<CR>
nmap <leader>f :NERDTreeFind<CR>
" Replace word and press `.` to replace matched words
nnoremap <leader>r *#cgn
nmap <C-p> :GFiles<CR>
vnoremap <C-c> :w !pbcopy<CR><CR>
" Reverse lines
" Normal mode reverse lines
nnoremap <C-j> :m .+1<CR>==
nnoremap <C-k> :m .-2<CR>==
" Insert mode reverse lines
inoremap <C-j> :m .+1<CR>==
inoremap <C-k> :m .-2<CR>==
" Window vertical resize
nnoremap <leader>+ 5<C-w>+
nnoremap <leader>- 5<C-w>-
" Yank current cursor to the end of the line
nnoremap Y y$
" Center search
nnoremap n nzzzv
nnoremap N Nzzzv
nnoremap J mzJ`z
" Undo break points
inoremap , ,<c-g>u
inoremap . .<c-g>u
inoremap [ [<c-g>u
inoremap " "<c-g>u
inoremap { {<c-g>u
inoremap ( (<c-g>u
inoremap ! !<c-g>u
inoremap ? ?<c-g>u
" Initialize fugitive window
"nnoremap <Leader>gs :G<CR>
nnoremap <Leader>g :tabe <CR>:G <CR> :only<CR>
" New empty tab
nnoremap <Leader>t :tabe <CR>
" Edit file relative to directory
nnoremap <Leader><tab> :e %:h<CR>
augroup CursorLine
au!
au VimEnter,WinEnter,BufWinEnter * setlocal cursorline
au WinLeave * setlocal nocursorline
augroup END
" rainbow parenthesis
let g:rainbow#max_level = 16
" fzf
let g:fzf_layout = {'up':'~90%', 'window': { 'width': 0.8, 'height': 0.8,'yoffset':0.5,'xoffset': 0.5, 'highlight': 'Todo', 'border': 'sharp' } }
let $BAT_THEME='gruvbox-dark'
let $FZF_DEFAULT_OPTS = '--layout=reverse --info=inline'
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-s': 'split',
\ 'ctrl-v': 'vsplit' }
let g:fzf_colors =
\ { 'fg': ['fg', 'Normal'],
\ 'bg': ['bg', 'Normal'],
\ 'hl': ['fg', 'Comment'],
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
\ 'hl+': ['fg', 'Statement'],
\ 'info': ['fg', 'Type'],
\ 'border': ['fg', 'Ignore'],
\ 'prompt': ['fg', 'Character'],
\ 'pointer': ['fg', 'Exception'],
\ 'marker': ['fg', 'Keyword'],
\ 'spinner': ['fg', 'Label'],
\ 'header': ['fg', 'Comment'] }
" Auto format code on save Elixir
let g:mix_format_on_save = 1
let g:alchemist#elixir_erlang_src = "/Users/Bryan/.asdf/shims/elixir"
"" NERDTree
let NERDTreeShowHidden=1
let g:NERDTreeDirArrowExpandable = '↠'
let g:NERDTreeDirArrowCollapsible = '↡'
" ALE JavaScript
""" Ale configuration for JS
"let g:ale_javascript_eslint_executable = 'eslint'
let g:ale_linters = {
"\ 'javascript': ['eslint'],
"\ 'jsx': ['eslint'],
\ 'elixir': []
\}
"let g:ale_fixers = { 'javascript': ['eslint'] }
let g:ale_fix_on_save = 1
let g:ale_sign_error = 'x'
let g:goyo_width = 160
" LUA
lua << EOF
local catppuccino = require("catppuccino")
-- configure it
catppuccino.setup(
{
colorscheme = "neon_latte",
transparency = false,
styles = {
comments = "italic",
functions = "italic",
keywords = "italic",
strings = "NONE",
variables = "NONE",
},
integrations = {
treesitter = true,
native_lsp = {
enabled = true,
styles = {
errors = "italic",
hints = "italic",
warnings = "italic",
information = "italic"
}
},
lsp_trouble = false,
lsp_saga = false,
gitgutter = false,
gitsigns = false,
telescope = false,
nvimtree = false,
which_key = false,
indent_blankline = false,
dashboard = false,
neogit = false,
vim_sneak = false,
fern = false,
barbar = false,
bufferline = false,
markdown = false,
}
}
)
-- load it
catppuccino.load()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment