initial commit
This commit is contained in:
30
stt/stt8.vim
Normal file
30
stt/stt8.vim
Normal file
@@ -0,0 +1,30 @@
|
||||
def g:SendRangeToTerminal(start_line: number, end_line: number)
|
||||
const terms = term_list()
|
||||
if terms->empty()
|
||||
echomsg "No Terminal windows found"
|
||||
return
|
||||
endif
|
||||
var line_num = start_line
|
||||
for line in getline(start_line, end_line)
|
||||
line_num += 1
|
||||
const spl_cmd = line->matchlist('\vVIMST (sleep|ctrl) ([0-9]+|[a-z])')
|
||||
if !spl_cmd->empty()
|
||||
const [_, cmd, arg1; _] = spl_cmd
|
||||
if cmd == "sleep"
|
||||
timer_start(str2nr(arg1), (_) => g:SendRangeToTerminal(line_num, end_line))
|
||||
return
|
||||
elseif cmd == "ctrl"
|
||||
terms[0]->term_sendkeys(nr2char(char2nr(arg1) - 96))
|
||||
continue
|
||||
endif
|
||||
endif
|
||||
terms[0]->term_sendkeys(line .. "\<CR>")
|
||||
endfor
|
||||
enddef
|
||||
|
||||
command -range -bar SendToTerm :call g:SendRangeToTerminal(<line1>, <line2>)
|
||||
vnoremap <silent><leader>s :SendToTerm<CR>
|
||||
nnoremap <silent><leader>s :SendToTerm<CR>
|
||||
|
||||
autocmd BufNewFile,BufRead cheat.sh nnoremap <buffer> <CR> :SendToTerm \| norm j<CR>
|
||||
autocmd BufNewFile,BufRead cheat.sh nnoremap <buffer> <silent><2-LeftMouse> :SendToTerm<CR>
|
Reference in New Issue
Block a user