dotfiles/.vimrc
Trysdyn Black 8b2daa45c0 Add pylintrc
Also remove line length configs from py linters in vimrc since we're
configuring that properly now.

Don't like having to repeat myself in pylintrc and black's conf but meh.
2023-05-11 13:51:40 -07:00

119 lines
3.6 KiB
VimL

" Hack my TERM to get around vim ignoring terminfo
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'
Plugin 'vim-pandoc/vim-pandoc'
Plugin 'vim-pandoc/vim-pandoc-syntax'
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'
" End Vundle startup, reset changed values as desired
call vundle#end()
filetype plugin indent on
" Formatters for ale to reformat documents into a unified structure
let g:ale_fixers={
\'*': ['remove_trailing_lines', 'trim_whitespace'],
\'python': ['autopep8', 'black', 'isort'],
\'elixir': ['mix_format']
\}
" Visual themeing
set termguicolors "Enable 256 colors
set t_Co=256 "Limit vim to 256 colors
set scrolloff=5 "Always display 5 lines below cursor when scrolling
colorscheme base16 "Use my custom built color scheme
let g:airline_theme='base16' "Use the scheme for airline too
set background=dark "Inform vim I use a black background terminal
let g:airline_powerline_fonts=1 "Use powerline glyphs in airline
" 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 "enable incremental search
set ignorecase "ignore case in search
set smartcase " ...unless you specify case yourself
" Tabs and Whitespace
set breakindent "add soft indents when soft wrapping
set autoindent "try to figure out automatic indents while writing code
set smartindent " ...and try to figure it out based on language
set nowrap "don't soft wrap by default
set tabstop=4
set shiftwidth=4
"display special glyphs for tabs and trailing whitespace
set list listchars=tab:»·,trail
" dmenu style command completion
set wildmenu
set wildignorecase
" Syntax Highlighting
syntax on
" Word count in plaintext formats
let g:airline#extensions#wordcount#enabled=1
let g:airline#extensions#wordcount#filetypes=['help', 'markdown', 'rst', 'org', 'text', 'asciidoc', 'tex', 'mail', 'pandoc']
" 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 everything 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>