From 57a8d8360c85528fb477e76ef1a5f2eeb151be14 Mon Sep 17 00:00:00 2001 From: McSinyx Date: Wed, 18 May 2016 14:25:25 +0700 Subject: Initial commit --- vim/.vim/bundle/stime/autoload/stime.vim | 75 ++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 vim/.vim/bundle/stime/autoload/stime.vim (limited to 'vim/.vim/bundle/stime/autoload/stime.vim') diff --git a/vim/.vim/bundle/stime/autoload/stime.vim b/vim/.vim/bundle/stime/autoload/stime.vim new file mode 100644 index 0000000..6645e66 --- /dev/null +++ b/vim/.vim/bundle/stime/autoload/stime.vim @@ -0,0 +1,75 @@ +function! stime#LoadTable(table) + if filereadable(a:table) + let table = a:table + else + for i in split(&runtimepath, ',') + let path = i . "/tables/" . a:table + if filereadable(path) + let table = path + break + endif + endfor + if !exists("table") + echoerr "Input table not found" + endif + endif + let l = [] + let f = readfile(table) + let [begun, ended] = [0, 0] + for i in range(len(f)) + let line = f[i] + if begun + if line == 'END_TABLE' + let ended = 1 + break + endif + if line != '' && line[:2] != '###' + let row = split(line)[:1] + if len(row) < 2 + echoerr 'File "' . table . '", line ' . (i + 1) . ': no phrase after input_keys found' + else + call add(l, split(line)[:1]) + endif + endif + else + if line == 'BEGIN_TABLE' + let begun = 1 + else + silent! execute "let " . line + endif + endif + endfor + if !begun + echoerr 'File "' . table . '", line ' . (i + 1) . ': BEGIN_TABLE not found' + elseif !ended + echoerr 'File "' . table . '", line ' . (i + 1) . ': END_TABLE not found' + endif + if exists("ESCAPE_CHAR") + call add(l, [ESCAPE_CHAR, '']) + call add(l, [ESCAPE_CHAR . ESCAPE_CHAR, ESCAPE_CHAR]) + endif + if !exists("NAME") + let NAME = table + endif + return [NAME, l] +endfunction + +function! stime#Toggle(reloadmapping) + if exists("b:stime") + for i in b:stime + execute "unmap! " i + endfor + unlet b:stime + echomsg "Stime is off" + else + if !exists("s:time_mappings") || a:reloadmapping + let [s:time_im, s:time_mappings] = stime#LoadTable(g:stime_table) + endif + let b:stime = [] + for [i, j] in s:time_mappings " This plugin cannot yet handle frequencies + execute "noremap! " i j + call add(b:stime, i) + endfor + echomsg "Stime is on. Input table: " . s:time_im + endif +endfunction -- cgit 1.4.1