summary refs log tree commit diff
path: root/.vim/after/plugin/writing.vim
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2020-01-26 17:16:07 +0100
committerRobert Günzler <r@gnzler.io>2020-01-26 18:00:59 +0100
commitf5d56602df70950de6b7d40966b00c9939c81763 (patch)
treeb50ffeb5496fe3525cc1bab2629389ced95435b7 /.vim/after/plugin/writing.vim
Intial commit of v2
See https://drewdevault.com/2019/12/30/dotfiles.html
Diffstat (limited to '.vim/after/plugin/writing.vim')
-rw-r--r--.vim/after/plugin/writing.vim108
1 files changed, 108 insertions, 0 deletions
diff --git a/.vim/after/plugin/writing.vim b/.vim/after/plugin/writing.vim
new file mode 100644
index 0000000..d868304
--- /dev/null
+++ b/.vim/after/plugin/writing.vim
@@ -0,0 +1,108 @@
+" Configuration for writing text in vim
+
+" Grammer checker
+let g:grammarous#languagetool_cmd = 'languagetool'
+
+" Minimal UX for concentration
+let g:goyo_width = 120
+let g:goyo_height = 90
+let g:goyo_linenr = 0
+nmap <F0> :Goyo<CR>
+
+let g:limelight_default_coefficient = 0.5
+let g:limelight_paragraph_span = 1
+" let g:limelight_default_coefficient = 0.5
+" let g:limelight_paragraph_span = 1
+let g:limelight_priority = -1
+
+" goyo enter/leave funcs {{{
+function! s:goyo_enter()
+    if has('gui_running') || has('gui_vimr')
+        " set linespace = 7
+
+    elseif exists('$TMUX')
+        silent !tmux set status off
+    endif
+
+    " set noshowmode
+    " set noshowcmd
+    set scrolloff=999
+    Limelight
+
+    " make sure :q in the last buffer, in Goyo also quits vim
+    let b:quitting = 0
+    let b:quitting_bang = 0
+    autocmd QuitPre <buffer> let b:quitting = 1
+    cabbrev <buffer> q! let b:quitting_bang = 1 <bar> q!
+endfunction
+
+function! s:goyo_leave()
+    if has('gui_running') || has('gui_vimr')
+        " set linespace = 0
+
+    elseif exists('$TMUX')
+        silent !tmux set status on
+    endif
+
+    " set showmode
+    " set showcmd
+    set scrolloff=5
+    Limelight!
+
+    " make sure :q in the last buffer, in Goyo also quits vim
+    if b:quitting && len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 1
+        if b:quitting_bang
+          qa!
+        else
+          qa
+        endif
+    endif
+endfunction
+" }}}
+
+" writing autocommands
+function! s:writing_mode_enter()
+    set textwidth=120
+    " ALEToggle
+    " Grammarous keymaps
+    nmap <Leader>c :GrammarousCheck --lang=de
+    nmap <Leader>gi <Plug>(grammarous-move-to-info-window)
+    nmap <Leader>gr <Plug>(grammarous-remove-error)
+    nmap <Leader>gd <Plug>(grammarous-disable-rule)
+    nmap <Leader>gf <Plug>(grammarous-fixit)
+    nmap <Leader>gn <Plug>(grammarous-move-to-next-error)
+    nmap <Leader>gp <Plug>(grammarous-move-to-previous-error)
+endfunction
+
+augroup Writing
+    au!
+    au FileType markdown,tex call <SID>writing_mode_enter()
+    " goyo autocommands
+    au User GoyoEnter nested call <SID>goyo_enter()
+    au User GoyoLeave nested call <SID>goyo_leave()
+augroup END
+
+" LaTeX
+" let g:vimtex_view_general_viewer
+"             \ = '/Applications/Skim.app/Contents/SharedSupport/displayline'
+" let g:vimtex_view_general_options = '-r @line @pdf @tex'
+
+" " This adds a callback hook that updates Skim after compilation
+" let g:vimtex_latexmk_callback_hooks = ['UpdateSkim']
+" function! UpdateSkim(status)
+"     if !a:status | return | endif
+
+"     let l:out = b:vimtex.out()
+"     let l:tex = expand('%:p')
+"     let l:cmd = [g:vimtex_view_general_viewer, '-r']
+"     if !empty(system('pgrep Skim'))
+"         call extend(l:cmd, ['-g'])
+"     endif
+"     if has('nvim')
+"         call jobstart(l:cmd + [line('.'), l:out, l:tex])
+"     elseif has('job')
+"         call job_start(l:cmd + [line('.'), l:out, l:tex])
+"     else
+"         call system(join(l:cmd + [line('.'), shellescape(l:out), shellescape(l:tex)], ' '))
+"     endif
+" endfunction