Skip to content

Instantly share code, notes, and snippets.

@saitoha
Created December 19, 2012 11:59
Show Gist options
  • Select an option

  • Save saitoha/4336183 to your computer and use it in GitHub Desktop.

Select an option

Save saitoha/4336183 to your computer and use it in GitHub Desktop.
Check DA2/CPR response from vimscript
function! l:addchar(c)
let s:param .= a:c
return ''
endfunction
function! l:completeDA2()
unmap 0
unmap 1
unmap 2
unmap 3
unmap 4
unmap 5
unmap 6
unmap 7
unmap 8
unmap 9
unmap ;
unmap c
unmap <Esc>[>
:redraw!
echo s:param
return ""
endfunction
function! l:listenDA2()
let s:param = ""
map <expr> 0 l:addchar('0')
map <expr> 1 l:addchar('1')
map <expr> 2 l:addchar('2')
map <expr> 3 l:addchar('3')
map <expr> 4 l:addchar('4')
map <expr> 5 l:addchar('5')
map <expr> 6 l:addchar('6')
map <expr> 7 l:addchar('7')
map <expr> 8 l:addchar('8')
map <expr> 9 l:addchar('9')
map <expr> ; l:addchar(';')
map <expr> c l:completeDA2()
return ""
endfunction
function! l:completeCPR()
unmap 0
unmap 1
unmap 2
unmap 3
unmap 4
unmap 5
unmap 6
unmap 7
unmap 8
unmap 9
unmap ;
unmap R
unmap <Esc>[
:redraw!
echo s:param
return ""
endfunction
function! l:listenCPR()
let s:param = ""
map <expr> 0 l:addchar('0')
map <expr> 1 l:addchar('1')
map <expr> 2 l:addchar('2')
map <expr> 3 l:addchar('3')
map <expr> 4 l:addchar('4')
map <expr> 5 l:addchar('5')
map <expr> 6 l:addchar('6')
map <expr> 7 l:addchar('7')
map <expr> 8 l:addchar('8')
map <expr> 9 l:addchar('9')
map <expr> ; l:addchar(';')
map <expr> R l:completeCPR()
return ""
endfunction
function! vtutil#CheckDA2()
map <special> <expr> <Esc>[> l:listenDA2()
call system("echo -en '\033[>c' > /dev/tty")
endfunction
function! vtutil#CheckCPR()
map <special> <expr> <Esc>[ l:listenCPR()
call system("echo -en '\033[6n' > /dev/tty")
endfunction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment