Refactor tmux and set-clipboard detection

Move logic to `autoload/tmux.vim` to detect the `vim` is being run
inside a `tmux` sessions and if the `set-clipboard` option is enabled.
This cleans up adding the optional `oscyank.vim` plugin when needed.
This commit is contained in:
Kenneth Benzie 2020-12-10 18:07:24 +00:00
parent 76acb9cd90
commit c17f7ea0d9
3 changed files with 14 additions and 4 deletions

View File

@ -1,5 +1,9 @@
let s:tmux_option = '@vim'.substitute($TMUX_PANE, '%', '\\%', 'g') let s:tmux_option = '@vim'.substitute($TMUX_PANE, '%', '\\%', 'g')
function! tmux#inSession() abort
return $TMUX !=# ''
endfunction
function! tmux#setNavigationFlag() abort function! tmux#setNavigationFlag() abort
call system('tmux set-window-option '.s:tmux_option.' 1') call system('tmux set-window-option '.s:tmux_option.' 1')
endfunction endfunction
@ -7,3 +11,11 @@ endfunction
function! tmux#unsetNavigationFlag() abort function! tmux#unsetNavigationFlag() abort
call system('tmux set-window-option -u '.s:tmux_option) call system('tmux set-window-option -u '.s:tmux_option)
endfunction endfunction
function! tmux#isSetClipboardOn() abort
if !tmux#inSession()
return 0
endif
let l:set_clipboard = trim(system('tmux show-options -g set-clipboard'))
return l:set_clipboard ==# 'set-clipboard on'
endfunction

View File

@ -77,7 +77,7 @@ nnoremap <leader>tm :tabmove<Space>
" Clear search highlights " Clear search highlights
nnoremap <leader><Space> :nohlsearch<CR> nnoremap <leader><Space> :nohlsearch<CR>
if g:use_osc52 if exists('loaded_oscyank')
noremap <leader>y :Oscyank<CR> noremap <leader>y :Oscyank<CR>
else else
" System clipboard yank/put " System clipboard yank/put

4
vimrc
View File

@ -200,9 +200,7 @@ Pack 'jrozner/vim-antlr'
" Plugins for remote integrations " Plugins for remote integrations
Pack 'greymd/oscyank.vim', {'type': 'opt'} Pack 'greymd/oscyank.vim', {'type': 'opt'}
let g:use_osc52 = $TMUX !=# '' && if tmux#isSetClipboardOn()
\ trim(system('tmux show-options -g set-clipboard')) ==# 'set-clipboard on'
if g:use_osc52 && isdirectory(expand('~/.vim/pack/minpac/opt/oscyank.vim'))
packadd oscyank.vim packadd oscyank.vim
endif endif