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