This repository has been archived on 2022-03-04. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/nvim/.config/nvim/init.vim

192 lines
4.8 KiB
VimL

"Don't try to be vi compatible
set nocompatible
" Disable folding
set nofoldenable
let g:markdown_folding=0
" Turn on syntax highlighting
syntax on
" mouse
set mouse=a
let base16colorspace=256
" Utility Functions
function! WordCount()
let currentmode = mode()
if !exists("g:lastmode_wc")
let g:lastmode_wc = currentmode
endif
" if we modify file, open a new buffer, be in visual ever, or switch modes
" since last run, we recompute.
if &modified || !exists("b:wordcount") || currentmode =~? '\c.*v' || currentmode != g:lastmode_wc
let g:lastmode_wc = currentmode
let l:old_position = getpos('.')
let l:old_status = v:statusmsg
execute "silent normal g\<c-g>"
if v:statusmsg == "--No lines in buffer--"
let b:wordcount = 0
else
let s:split_wc = split(v:statusmsg)
if index(s:split_wc, "Selected") < 0
let b:wordcount = str2nr(s:split_wc[11])
else
let b:wordcount = str2nr(s:split_wc[5])
endif
let v:statusmsg = l:old_status
endif
call setpos('.', l:old_position)
return b:wordcount
else
return b:wordcount
endif
endfunction
function! LightlineWordCount()
return &filetype =~# '\v^(markdown|txt|vimwiki)' ? WordCount() . ' Words' : ''
endfunction
" Plugins
call plug#begin("~/.config/nvim/plugged")
Plug 'vimwiki/vimwiki', { 'branch': 'dev' }
Plug 'chriskempson/base16-vim'
Plug 'tpope/vim-fugitive'
Plug 'Olical/conjure'
"Plug 'dhruvasagar/vim-table-mode'
Plug 'cespare/vim-toml'
Plug 'luochen1990/rainbow'
Plug 'skywind3000/asyncrun.vim'
Plug 'guns/vim-sexp'
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'deoplete-plugins/deoplete-jedi'
Plug 'tidalcycles/vim-tidal'
Plug 'ledger/vim-ledger'
Plug 'junegunn/fzf'
Plug 'junegunn/goyo.vim'
Plug 'https://tildegit.org/sloum/gemini-vim-syntax'
Plug 'itchyny/lightline.vim'
Plug 'junegunn/fzf.vim'
Plug '~/projects/improviz-vim'
Plug 'davidgranstrom/scnvim'
call plug#end()
au BufNewFile *vimwiki/*.wiki :0r !fragment-vimwiki-header '%'
au BufNewFile *gmi :set includeexpr=substitute(v:fname,'^/','','')
au BufRead *gmi :set includeexpr=substitute(v:fname,'^/','','')
" function! VimwikiLinkHandler(link)
" let link = a:link
" if link =~# '^file'
" let cmd = 'rifle ' . strcharpart(link, 5)
" echo cmd
" call system(cmd)
" return 0
" endif
" endfunction
let g:limelight_conceal_ctermfg = 'grey'
let g:vimwiki_global_ext = 0
let g:vimwiki_folding = ''
let g:vimwiki_markdown_link_ext = 1
let g:table_mode_corner = '|'
let g:rainbow_active = 0
let g:ledger_bin="hledger"
let g:sexp_filetypes= 'clojure,scheme,lisp,timl,janet'
let g:deoplete#enable_at_startup = 1
let mapleader = ","
let maplocalleader = ","
let g:taskwiki_markup_syntax = "markdown"
let g:tidal_target = "terminal"
let g:vimwiki_list = [{'path': '~/vimwiki', 'syntax': 'markdown', 'ext': '.wiki', 'links_space_char': '_' },
\ {'path': '~/website/wiki/vimwiki', 'syntax': 'markdown', 'ext': '.md', 'links_space_char': '_' , 'diary_rel_path' : 'blog', 'diary_index' : 'index', 'diary_header': 'Blog' }]
let g:lightline = {
\ 'colorscheme': 'Tomorrow_Night',
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ],
\
\ 'right': [ [ 'lineinfo' ],
\ [ 'percent' ],
\ [ 'wordcount', 'fileformat', 'fileencoding', 'filetype'] ]
\ },
\ 'mode_map': {
\ 'n' : 'N',
\ 'i' : 'I',
\ 'R' : 'R',
\ 'v' : 'V',
\ 'V' : 'VL',
\ "\<C-v>": 'VB',
\ 'c' : 'C',
\ 's' : 'S',
\ 'S' : 'SL',
\ "\<C-s>": 'SB',
\ 't': 'T',
\ },
\ 'component_function': {
\ 'gitbranch': 'FugitiveHead',
\ 'wordcount': 'LightlineWordCount'
\ },
\ }
set modelines=0
" Map semicolon for quicker command access
nnoremap ; :
"Pandoc Simple Build
nnoremap <leader>ps :AsyncRun pandoc --pdf-engine xelatex % -o %.pdf<Enter>
"Pandoc w/ Citations
nnoremap <leader>pc :AsyncRun pandoc --csl ~/Documents/08-Bibliography/ieee.csl --filter pandoc-citeproc --pdf-engine xelatex % -o %.pdf<Enter>
"Using makedoc script
nnoremap <leader>pd :AsyncRun makedoc %<Enter>
" Remind
" nnoremap <leader>r :!remind ~/vimwiki/calendar.rem<Enter>
set number relativenumber
set ruler
set visualbell
set encoding=utf-8
set tabstop=4
set softtabstop=0
set shiftwidth=4
set expandtab
set scrolloff=3
set backspace=indent,eol,start
set matchpairs+=<:>
set hidden
set ttyfast
set laststatus=2
set noshowmode
set showcmd
set hlsearch
set incsearch
set ignorecase
set smartcase
set showmatch
colors base16-tomorrow
hi Normal ctermbg=Black
hi LineNr ctermbg=Black
hi CursorLineNr ctermbg=Black ctermfg=Grey