dotfiles/.vimrc
Trysdyn Black 7d28c9a266 Major vimrc cleanup
- Add comments for uncommented things
- Remove ancient pre-vim 7 conditionals
- Normalize spacing in sets and lets
- Make tabs visible
- Change trailing space visibilty from period to floating dot
- Tune up ALE python linting with pep8, black, isort
2023-05-09 18:07:29 -07:00

124 lines
3.8 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']
\}
" Set python line length in all the linters/fixers
let g:ale_python_pylint_options = '--max-line-length 119'
let g:ale_python_autopep8_options = '--max-line-length 119'
let g:ale_python_black_options = '-l 119'
" 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>