Replace osc52yank.vim with autoload script
This commit is contained in:
parent
41a0658cf2
commit
837aa12f9f
@ -5,4 +5,4 @@ setlocal nospell
|
|||||||
setlocal scrolloff=0
|
setlocal scrolloff=0
|
||||||
|
|
||||||
" Don't display line numbers
|
" Don't display line numbers
|
||||||
setlocal nonumber norelativenumber
|
setlocal nonumber norelativenumber signcolumn=no
|
||||||
|
27
autoload/osc52.vim
Normal file
27
autoload/osc52.vim
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
" Use the OSC 52 escape sequence to copy text to the local system clipboard
|
||||||
|
" when connected to a remote machine.
|
||||||
|
|
||||||
|
" Add an autocmd to run after text is yanked.
|
||||||
|
function! osc52#autocmd()
|
||||||
|
augroup osc52
|
||||||
|
autocmd!
|
||||||
|
autocmd TextYankPost * call osc52#copy()
|
||||||
|
augroup END
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! osc52#copy()
|
||||||
|
" Only use OSC 52 when text is yanked with the z register.
|
||||||
|
if v:event['regname'] ==# 'z'
|
||||||
|
" Get the register contents and join the list into a string.
|
||||||
|
let l:content = join(v:event['regcontents'], "\n")
|
||||||
|
if v:event['regtype'] ==# 'V'
|
||||||
|
" Append a new line in linewise-visual mode to avoid surprises.
|
||||||
|
let l:content = l:content."\n"
|
||||||
|
endif
|
||||||
|
" Get the parent tty while being compatible with vim and neovim, originally
|
||||||
|
" from https://github.com/greymd/oscyank.vim
|
||||||
|
let l:tty = system('(tty || tty < /proc/$PPID/fd/0) 2> /dev/null | grep /dev/')
|
||||||
|
" Base 64 encode the content, and print OSC 52 escape sequence to the tty.
|
||||||
|
call system('base64 | xargs -0 printf "\\033]52;c;%s\\a" > '.l:tty, l:content)
|
||||||
|
endif
|
||||||
|
endfunction
|
@ -95,8 +95,14 @@ nnoremap <leader>tm :tabmove<Space>
|
|||||||
" Clear search highlights
|
" Clear search highlights
|
||||||
nnoremap <leader><Space> :nohlsearch<CR>
|
nnoremap <leader><Space> :nohlsearch<CR>
|
||||||
|
|
||||||
if exists('loaded_oscyank')
|
if tmux#isOption('set-clipboard', 'on') || $SSH_CONNECTION !=# ''
|
||||||
noremap <leader>y :Oscyank<CR>
|
" When connected to a remote session the + selection register is not
|
||||||
|
" available and the unnamed register is used instead. Add mappings using the
|
||||||
|
" z register instead.
|
||||||
|
noremap <leader>y "zy
|
||||||
|
noremap <leader>Y "zY
|
||||||
|
" Enable OSC 52 copy on yank.
|
||||||
|
call osc52#autocmd()
|
||||||
else
|
else
|
||||||
" System clipboard yank/put
|
" System clipboard yank/put
|
||||||
noremap <leader>y "+y
|
noremap <leader>y "+y
|
||||||
|
6
vimrc
6
vimrc
@ -183,9 +183,3 @@ Pack 'mustache/vim-mustache-handlebars'
|
|||||||
Pack 'joshglendenning/vim-caddyfile'
|
Pack 'joshglendenning/vim-caddyfile'
|
||||||
Pack 'kbenzie/vim-khr'
|
Pack 'kbenzie/vim-khr'
|
||||||
Pack 'jrozner/vim-antlr'
|
Pack 'jrozner/vim-antlr'
|
||||||
|
|
||||||
" Plugins for remote integrations
|
|
||||||
Pack 'greymd/oscyank.vim', {'type': 'opt'}
|
|
||||||
if tmux#isOption('set-clipboard', 'on')
|
|
||||||
packadd oscyank.vim
|
|
||||||
endif
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user