" vim: set foldmethod=marker foldlevel=1 nomodeline: " ================================================================================ " .init.vim / .vimrc of Marty Oehme {{{ " ================================================================================ " " - stolen from many different sources including " Steve Losh " Junegunn Choi " Tim Pope " this config does not set nocompatible - neovim does this automatically " this config does not set filetype plugin - vim-sensible does this " }}} " PLUGIN INSTALLATION - handled by VIM-PLUG {{{ " ================================================================================ " " automatically install vim-plug if it does not exist " Note: this installs it in the neovim folder, not the vim folder if empty(glob('~/.local/share/nvim/site/autoload/plug.vim')) silent !curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source academia_pandoc.vim | q endif " automatically install any missing plugins autocmd VimEnter * \ if len(filter(values(g:plugs), '!isdirectory(v:val.dir)')) \| PlugInstall --sync | q \| endif " " set truecolor (neovim) set termguicolors " sets tabs to be 2 characters, expanded into spaces, but still removable with " one press of backspace. " great explanation: http://vimcasts.org/transcripts/2/en/ set tabstop=2 set shiftwidth=2 set softtabstop=2 set expandtab " set cursor line highlighting, esp useful when using with bracket " highlighting and you don't know which side of the brace the cursor is on set cursorline " shows linenumbers relative to the one you are on, for easy movement and " dNUMBERd deletions set number relativenumber " keeps an undofile next to files so that you can even undo if vim is closed " in between set undofile " ignores case by default but will use case when search is specifically not " all lowercased set ignorecase set smartcase " whenever vim loses focus, save au FocusLost * :wa " disables showing us the current mode in the command line since airline takes " care of it set noshowmode " highlight everything that goes over 80 columns highlight ColorColumn ctermbg=magenta call matchadd('ColorColumn', '\%81v', 100) " set our leader key to space since with hjkl, space is largely useless let mapleader = "\" " maps the leader for buffer local mappings (e.g. vim-waikiki for files under " the root dir to the same key -- might lead to incompatibilities, will have " to test) let maplocalleader = "\" " set jk to escape, in case capslock is not mapped to escape on the system inoremap jk " remove search highlights by pressing space+/ - the key for searching the " first place nnoremap / :noh " quickly edit vimrc with leader+V nnoremap V :vsp academia_pandoc.vim " automatically source the vimrc file whenever it is saved (causes slowdown " when done in MANY successions) " au BufWritePost init.vim so ~/.config/nvim/init.vim " source vimrc with keystroke combination nnoremap VV :source academia_pandoc.vim " 'open new buffer' with leader-t (opens new buffer and switches to it) " open actual new tab with leader-T nnoremap t :vsp . nnoremap T :tabedit . " stronger versions of left,right - move all the way nnoremap H ^ nnoremap L $ " }}} " CUSTOMIZATION {{{ " defines plugin directory " Install plugins from vim with :PlugInstall silent! if plug#begin('~/.local/share/nvim/plugged') Plug 'christoomey/vim-tmux-navigator' " automatically switch between relative and absolute numbers as buffers move " into / out of focus (requires number & relativenumber to be set) Plug 'jeffkreeftmeijer/vim-numbertoggle' Plug 'rakr/vim-one' Plug 'vim-pandoc/vim-pandoc' Plug 'vim-pandoc/vim-pandoc-syntax' call plug#end() endif set foldlevel=2 " PLUGIN: vim-pandoc " handle markdown files with pandoc (and pandoc syntax!) let g:pandoc#filetypes#pandoc_markdown = 1 " disable all default keymaps let g:pandoc#keyboard#use_default_mappings=0 let g:pandoc#hypertext#use_default_mappings=0 " if there's a pdf and an html or similar, open the pdf let g:pandoc#command#prefer_pdf=1 " look for bibtex files w/ same name as edited one, then .bib in current dir, yaml frontmatter, and finally the globally set bibs file let g:pandoc#biblio#sources="bcyg" " the globally set bibs file let g:pandoc#biblio#bibs=["academia.bib"] let g:pandoc#biblio#use_bibtool=1 let g:pandoc#biblio#use_preview=1 let g:pandoc#completion#bib#mode='citeproc' let g:pandoc#folding#fold_yaml=1 let g:pandoc#folding#fastfolds=1 let g:pandoc#spell#default_langs=["en_us", "de_de"] let g:pandoc#hypertext#ausosave_on_edit_open_link=1 let g:pandoc#hypertext#create_if_no_alternates_exists=1 let g:pandoc#syntax#conceal#use = 1 let g:pandoc#syntax#conceal#urls = 1 " follow and open links with pandoc " open a file with either local means, or let the system decide nnoremap gX :call pandoc#hypertext#OpenSystem() nnoremap gx :call pandoc#hypertext#OpenLocal() " open a link in the editor (this buffer, or split) nnoremap gf :call pandoc#hypertext#OpenLink( g:pandoc#hypertext#edit_open_cmd ) nnoremap :call pandoc#hypertext#OpenLink( g:pandoc#hypertext#edit_open_cmd ) nnoremap gF :call pandoc#hypertext#OpenLink( g:pandoc#hypertext#split_open_cmd ) nnoremap gF :call pandoc#hypertext#OpenLink( g:pandoc#hypertext#split_open_cmd ) " go back a link nnoremap gb :call pandoc#hypertext#BackFromLink() nnoremap :call pandoc#hypertext#BackFromLink() " Add pandoc citations to deoplete automatic completions "call deoplete#custom#var('omni', 'input_patterns', { " \ 'pandoc': '@' " \}) " }}} colo one