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:
parent
76acb9cd90
commit
c17f7ea0d9
@ -1,5 +1,9 @@
|
||||
let s:tmux_option = '@vim'.substitute($TMUX_PANE, '%', '\\%', 'g')
|
||||
|
||||
function! tmux#inSession() abort
|
||||
return $TMUX !=# ''
|
||||
endfunction
|
||||
|
||||
function! tmux#setNavigationFlag() abort
|
||||
call system('tmux set-window-option '.s:tmux_option.' 1')
|
||||
endfunction
|
||||
@ -7,3 +11,11 @@ endfunction
|
||||
function! tmux#unsetNavigationFlag() abort
|
||||
call system('tmux set-window-option -u '.s:tmux_option)
|
||||
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
|
||||
|
@ -77,7 +77,7 @@ nnoremap <leader>tm :tabmove<Space>
|
||||
" Clear search highlights
|
||||
nnoremap <leader><Space> :nohlsearch<CR>
|
||||
|
||||
if g:use_osc52
|
||||
if exists('loaded_oscyank')
|
||||
noremap <leader>y :Oscyank<CR>
|
||||
else
|
||||
" System clipboard yank/put
|
||||
|
4
vimrc
4
vimrc
@ -200,9 +200,7 @@ Pack 'jrozner/vim-antlr'
|
||||
|
||||
" Plugins for remote integrations
|
||||
Pack 'greymd/oscyank.vim', {'type': 'opt'}
|
||||
let g:use_osc52 = $TMUX !=# '' &&
|
||||
\ trim(system('tmux show-options -g set-clipboard')) ==# 'set-clipboard on'
|
||||
if g:use_osc52 && isdirectory(expand('~/.vim/pack/minpac/opt/oscyank.vim'))
|
||||
if tmux#isSetClipboardOn()
|
||||
packadd oscyank.vim
|
||||
endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user