dotfiles/.vimrc

127 lines
3.2 KiB
VimL

" Hack my TERM to get around vim ignoring terminfo lol
if &term == "alacritty"
let &term = "xterm-256color"
endif
" Ensure certain plugins work by removing vi compatable modes
set nocompatible
" Make backspace work as expected on all platforms
set backspace=indent,eol,start
" Start Vundle, temporarily set some values
set rtp+=~/.vim/bundle/Vundle.vim
filetype off
call vundle#begin()
" Plugin execution
Plugin 'VundleVim/Vundle.vim'
if v:version >= 704
Plugin 'vim-pandoc/vim-pandoc'
Plugin 'vim-pandoc/vim-pandoc-syntax'
endif
Plugin 'tpope/vim-surround'
Plugin 'mhinz/vim-startify'
Plugin 'vim-airline/vim-airline'
Plugin 'dense-analysis/ale'
Plugin 'elixir-editors/vim-elixir'
Plugin 'rodjek/vim-puppet'
Plugin 'blindFS/vim-taskwarrior'
" End Vundle startup, reset changed values as desired
call vundle#end()
filetype plugin indent on
" Force the right pylint for ALE
" Creating a pylint3 => pylint symlink is necessary until my work laptop gets
" a distro that defaults stock pylint to Python 3
let g:ale_python_pylint_executable = "pylint3"
let g:ale_fixers = {
\'*': ['remove_trailing_lines', 'trim_whitespace'],
\'elixir': ['mix_format']
\}
" Visual themeing
if exists('+termguicolors')
set termguicolors "Enable 256 colors
endif
set t_Co=256
set scrolloff=5 "Always display 5 lines below cursor when scrolling
colorscheme base16
let g:airline_theme='base16'
set background=dark
let g:airline_powerline_fonts = 1
" Set UTF-8 default
set encoding=utf-8
" Stop mouse support from interfering with copy/paste
set mouse=
set ttymouse=
" Searching Modifications
set hlsearch "highlight search matches
set incsearch
set ignorecase
set smartcase
" Tabs and Whitespace
if exists('+breakindent')
set breakindent
endif
set autoindent
set smartindent
set nowrap
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set list listchars=tab:\ \ ,trail:.
" Command completion
set wildmenu
set wildignorecase
" Syntax Highlighting
syntax on
" Directories for backup files
set backupdir=~/.vim/backup
set directory=~/.vim/backup
" Disable markdown spelling by default
let g:pandoc#modules#disabled = ["spell"]
" Fixes to pandoc's rules to make markdown less ugly
let g:pandoc#syntax#codeblocks#embeds#langs = ["python", "bash=sh", "sh"]
let g:pandoc#syntax#conceal#blacklist = ["ellipses", "quotes"]
let g:pandoc#syntax#conceal#urls = 1
" Create the file if you follow an orphaned link
let g:pandoc#hypertext#create_if_no_alternates_exists = 1
" Make link follows split horizontally since most of my terms are tall
" Also work around a netrw bug that opens every no-modify
let g:pandoc#hypertext#split_open_cmd = "botright split +set\\ modifiable"
" Allow folding at fold markers to let me collapse sub-sections of lists
let g:pandoc#folding#vim_markers_in_comments_only = 0
" Unfold everything by default
set foldlevel=99
" Bracketed Paste
let &t_ti = &t_ti . "\e[?2004h"
let &t_te = "\e[?2004l" . &t_te
function XTermPasteBegin(ret)
set pastetoggle=<Esc>[201~
set paste
return a:ret
endfunction
map <expr> <Esc>[200~ XTermPasteBegin("i")
imap <expr> <Esc>[200~ XTermPasteBegin("")
cmap <Esc>[200~ <nop>
cmap <Esc>[201~ <nop>