improve tig

Fri, 22 Nov 2019 14:43:37 -0600

author
Meredith Howard <mhoward@roomag.org>
date
Fri, 22 Nov 2019 14:43:37 -0600
changeset 828
81ede7493890
parent 827
02630cc4d64a
child 829
7173f2b81a4e

improve tig

.vim/autoload/tig.vim file | annotate | diff | comparison | revisions
.vimrc file | annotate | diff | comparison | revisions
new file mode 100644
--- /dev/null
+++ b/.vim/autoload/tig.vim
@@ -0,0 +1,18 @@
+" Why this wrapper? vim :term sets $TERM to xterm but supports -256color and
+" all the suggestions for fixing that involve changing $TERM for vim itself
+" rather than just the subprocess.  Also since this runs in place we can
+" switch back after.
+func! tig#Tig(...) abort
+  call term_start(
+    \ ['/usr/bin/env', 'TERM=xterm-256color', 'tig'] + a:000,
+    \ {'curwin': 1, 'term_name': join(['!tig'] + a:000, ' '), 'exit_cb': 'tig#TigExit'}
+    \ )
+endfunc
+
+func! tig#TigBlame() abort
+  call tig#Tig('blame', '+' . line('.'), '--', expand('%'))
+endfunc
+
+func! tig#TigExit(...) abort
+  buffer #
+endfunc
--- a/.vimrc
+++ b/.vimrc
@@ -128,10 +128,8 @@ command! SyntaxCompleteOn setl omnifunc=
 
 command! Mksession execute "mksession! " . v:this_session
 
-command! TigBlame   term ++curwin tig blame -- %
-command! Tig        term ++curwin tig
-command! TigLog     term ++curwin tig log
-command! TigLogThis term ++curwin tig log -- %
+command! -nargs=+ -complete=file Tig      call tig#Tig(<f-args>)
+command!                         TigBlame call tig#TigBlame()
 
 command! -nargs=+ -complete=file -bar Ag call vimrc#Ag(<q-args>)
 CAlias Rg Ag

mercurial