Skip to content

Instantly share code, notes, and snippets.

@griimick
Last active December 1, 2020 11:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save griimick/afba7d79743287db98c72db3333005bf to your computer and use it in GitHub Desktop.
Save griimick/afba7d79743287db98c72db3333005bf to your computer and use it in GitHub Desktop.
Vim configurations
set nocompatible
filetype off
"
" Vim Vundle configurations and package list
"
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'pangloss/vim-javascript'
Plugin 'vim-airline/vim-airline'
Plugin 'jelera/vim-javascript-syntax'
Plugin 'Raimondi/delimitMate'
Plugin 'tpope/vim-fugitive'
Plugin 'heavenshell/vim-jsdoc'
Plugin 'mxw/vim-jsx'
Plugin 'digitaltoad/vim-pug'
Plugin 'dense-analysis/ale'
Plugin 'morhetz/gruvbox'
call vundle#end()
"
" Vim Airline configurations
"
set ttimeoutlen=50
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#ale#enabled = 1
let g:airline#extensions#hunks#enabled=0
let g:airline#extensions#branch#enabled=1
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_symbols.space = "\ua0"
let g:airline_powerline_fonts=0
"
" Vim Preferences
"
filetype plugin indent on
colorscheme gruvbox
"Must have options, highly recommended by community
set hidden
set wildmenu
set showcmd
set hlsearch
set incsearch
set tabstop=4
set shiftwidth=4
set t_Co=256
syntax on
set mouse=a
set bg=dark
set laststatus=2
set ruler
"Vim will store undo externally, so after closing and reopening file you can undo changes
"set undofile
set pastetoggle=<F3>
set ignorecase
set smartcase
set backspace=indent,eol,start
set smarttab autoindent
"
" Set relevant filetypes
"
autocmd BufRead,BufNewFile *.md set filetype=markdown
autocmd BufRead,BufNewFile *.hbs set filetype=html
autocmd BufRead,BufNewFile *.ejs set filetype=html
autocmd BufRead,BufNewFile *.njk set filetype=html
"
" Ale configurations
"
let g:ale_javascript_eslint_executable = 'eslint_d'
let g:ale_javascript_eslint_use_global = 1
let g:ale_linters = {'javascript.jsx': ['eslint'] }
let g:ale_sign_error = '>>' " Less aggressive than the default '>>'
let g:ale_sign_warning = '--'
let g:ale_lint_on_enter = 1 " Less distracting when opening a new file
let g:ale_lint_on_insert_leave = 1
let b:ale_fixers = {'javascript': ['eslint']}
let g:ale_fix_on_save = 1
"
" mxw/vim-jsx
"
let g:jsx_ext_required = 0
"
" Set number lines (relative hybrid)
"
set number relativenumber
augroup numbertoggle
autocmd!
autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber
augroup END
"
" Normal mode
nnoremap <C-j> :m .+1<CR>==
nnoremap <C-k> :m .-2<CR>==
" Insert mode
inoremap <C-j> <ESC>:m .+1<CR>==gi
inoremap <C-k> <ESC>:m .-2<CR>==gi
" Visual mode
vnoremap <C-j> :m '>+1<CR>gv=gv
vnoremap <C-k> :m '<-2<CR>gv=gv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment