From 0af93f972564a30958e15afa70d57ed9dcde9db7 Mon Sep 17 00:00:00 2001 From: wenxiaoning Date: Wed, 25 Oct 2017 08:08:06 +0800 Subject: [PATCH] init --- plugin/.mysql.vim.swp | Bin 0 -> 12288 bytes plugin/.test.vim.swp | Bin 0 -> 12288 bytes plugin/mysql.vim | 103 ++++++++++++++++++++++++++++++++++++++++++ plugin/test.vim | 66 +++++++++++++++++++++++++++ 4 files changed, 169 insertions(+) create mode 100644 plugin/.mysql.vim.swp create mode 100644 plugin/.test.vim.swp create mode 100644 plugin/mysql.vim create mode 100644 plugin/test.vim diff --git a/plugin/.mysql.vim.swp b/plugin/.mysql.vim.swp new file mode 100644 index 0000000000000000000000000000000000000000..0323d8331ac31eed6accb23765c0a301abcf63ae GIT binary patch literal 12288 zcmeI2&x;&I6vt~re)uCXL4yHLwG&A9#GT&VgkbEW z?L-<|LF_ug3bz+?!{G@(gvmMP3O?NS!&m;Eq#3Bm?9nWWAxt ze75)=Sn*w)>MyN;RzNGD70?Q31+)TM0j+>mKr5gX&Bk?3AqBk1ed_`;1C!F7N~(;;P-owFZckw0R%V$ zo&tNocJRa9gnR-%1h0T5*b9EUi;!#JD!2kJgSWt|pb3tFhrkZ-#}-1q2baMD2*7!8 z5*T1R_;xcPUx4?(>);9S=O#jKfa~BI_zZjsB4B_G;2Vs^*WgWX9y|)RfXzUT(?*~V zt-x(mAd2FYg-$~20dqW-j-@=IHeTTg=&39^Js%wRBW4;&8hb{y?xtg84UaV()N4S6 zM|;gS>TWF?D>XFX^UMkQnp(q=+Uxn1TOd?dIU%DBYKYKFQqSnK zQO+xjJk~Zyg*ust-O!^){eYcWOc=#GOSC7#Ox9{aww``HF_d(IU)T@@gIryoWM%=VHq3V@%|Ae;Ttzl`$+s8#!dNT7$ zS~Z1JCbBf5=VCuns}CQdm8qx@QU%Al#3x72qNL^OB!5o2agc>klM5#mv_?nmv!t7g zvZ;;s?D2cj#>%c-pf4QEJ-k!;w1Fp?AGtxs{Wde`VLD1}y04l?>>rLIS0f)PIh?FW zx+=qr^e2IY%Qcs0JES_%MBJkK3QwWC#OKZ$Jix7GInWL&3czf9@p2enNyK%xIy8l4&lzD!!c9IGUua6JYVmmMUVt`}%~mMPxJuziV~Rd>@8&X597O^6 zf`uwgc}cbaU-_4fDpwZ?6DRtTC$0Xp_&Q#EKH55$gtE*=(e55 z>Yl;~rWQ{EUzpMy<9NWX?ax!h+{ptK(s2tTj$srTk28^E!o>b7k0>`{XfWT{Vb?;J zmT5&UG)v2erlO@~Y+?!lF>i-xvBV6?JzJ4dzO|SStdu2z<1&=hl!2!JtzbWs_iUAk zF>MT?m(#^S7TXiV$R$#q$`!g|DQwFW`xdMGOpT66O*c!M*aTK>q2vRwZHY^(;1 literal 0 HcmV?d00001 diff --git a/plugin/.test.vim.swp b/plugin/.test.vim.swp new file mode 100644 index 0000000000000000000000000000000000000000..bc75fd7e7e26ed94b8b807916be36358d6e40efb GIT binary patch literal 12288 zcmeI2J!~9B6vxL%pzskuAS4Qk=e3l(L%t6?Ma;=2QV@wFfj~;I1(#s$?#yPxr-49RprMUYNGkd*A*xcq` zreqqwn#wEOS6Qz#6aytO0Al8u%{;9P*jP zIFNDditZxSg`4)XjTW8TD&)+aaHELMakUj@xf@;J5nhuFrKr}l&BFl$^2>mofr;43 z{vqTd-kvOi^w|-4H2PA`nOaAWSY5jt?AM&_qsqL#_g2{G#E3V4@#sf^KV${ox_B9A8#iOjB{ zbrfq3U6iLwiGrm`ElWB}rdY%NHR1Omv3ROh;uJQwFHlA&=GDp$&88?L?J*16{ zEiKYnDd(B<+;nP@2`1N*sbbh22Q@pCa+RlouAq);6bhc9uS>!yZioOskVj7H9!(6) z>rQnzPCLGg@>uMk(Ns~LR@#?M`3~&|)K~T+aNcQS+@u$rh!J4XT8~kMb-W z@Cu!#6>8IJZJZMUVbA2(iY5(JD&;-H9&TIqR@2E^<;0{Il-}n`S8ogybuXKCc94BW z#eS7#79&W<>ZQ|T(-Nk~&03>os*cV$!}62|Z3u;7V^y8X^G>a^(q0{Rt&1;$OsYwk zxta-FpAB?qI~Y-zkqYobNJTDrc^IjBC}=B;so426-e;#5v2Df|i}Rm4GvD49Upb4v z=TdCzD&Ym}hM%V?7pjrEqR*)|Z%Vmd;vO|Q3`JKC=LdRuugBB*bJ{3oiu;lCf)om6 zWNq4OU2_^eykPFCDvH}dk`A_DSs6Jm>1{l_OmCoaX>HtrQx4GHp>$X?p2VYQ%0W>t z3*!XeM?J%mkqV@s^>xzT_C1%+U8Y9~M")[1:2] + echo line_start + echo column_start + echo line_end + echo column_end + let lines = getline(line_start, line_end) + if len(lines) == 0 + return '' + endif + let lines[-1] = lines[-1][: column_end - (&selection == 'inclusive' ? 1 : 2)] + let lines[0] = lines[0][column_start - 1:] + return join(lines, "\n") +endfunction + + +function! RunSql(env) + let l:vm = visualmode() + let b:db_name = g:mysql_local_db_name + if a:env ==# 'prod' + echo 'use prod' + let b:db_name = g:mysql_prod_db_name + echo 'use ' . b:db_name + endif + if l:vm ==# 'V' || l:vm ==# 'v' + normal! `y + let b:sql = shellescape(@") + exec('py run(' . b:sql . ')') + else + " let b:sql = shellescape(getline(line('.'))) + let b:sql = getline(line('.')) + exec('py run("'. a:env . '","' . b:db_name . + \'","' . getline(line('.')) . '")') + endif +endfunction + +function! RunSqlVisual(env) + " echo s:GetVisualSelection() + let l:vm = visualmode() + let b:db_name = g:mysql_local_db_name + if a:env ==# 'prod' + let b:db_name = g:mysql_prod_db_name + endif + normal! `y + let b:sql = @@ + let b:sql = shellescape(b:sql) + silent exec('py run("'. a:env . '","' . b:db_name . '","' . b:sql . '")') +endfunction + +function! RunSqlLine(env) + let b:db_name = g:mysql_local_db_name + if a:env ==# 'prod' + let b:db_name = g:mysql_prod_db_name + endif + let b:sql = getline(line('.')) + " let b:sql = shellescape(b:sql) + exec('py run("'. a:env . '","' . b:db_name . '","' . b:sql . '")') + " exec('py run("'. a:env . '","' . b:db_name . '","' . b:sql . '")') +endfunction + + +" command! -nargs=0 Rs call RunSql() + +" vnoremap r :call RunVisual() +" autocmd FileType sql nnoremap r :call RunLine() +let g:mysql_local_db_name = 'tmddev' +let g:mysql_prod_db_name = 'tmdprd' + +vnoremap rs :call RunSqlVisual('local') +vnoremap rsp :call RunSqlVisual('prod') +nnoremap rs :call RunSqlLine('local') +nnoremap rsp :call RunSqlLine('prod') + + diff --git a/plugin/test.vim b/plugin/test.vim new file mode 100644 index 0000000..82b055c --- /dev/null +++ b/plugin/test.vim @@ -0,0 +1,66 @@ +function! HelloWorld() + echo "hello world" +endfunction + +python << EOF +import os +def helloworld(sql): + print('hello') +EOF + +function! Test() +python << EOF +import vim +cur_buf = vim.current.buffer +print("cur_buf {}".format(cur_buf)) +print "Lines: {0}".format(len(cur_buf)) +print "Contents: {0}".format(cur_buf[-1]) + +print( vim.current.line ) +print( vim.current.buffer ) +print( vim.current.window ) +print( vim.current.tabpage ) +print( vim.current.range ) + +EOF +endfunction + +" function! GetVisualSelection() + " " Why is this not a built-in Vim script function?! + " let [line_start, column_start] = getpos("'<")[1:2] + " let [line_end, column_end] = getpos("'>")[1:2] + " echo line_start + " echo column_start + " echo line_end + " echo column_end + " let lines = getline(line_start, line_end) + " if len(lines) == 0 + " return '' + " endif + " let lines[-1] = lines[-1][: column_end - (&selection == 'inclusive' ? 1 : 2)] + " let lines[0] = lines[0][column_start - 1:] + " echo join(lines, "\n") + " return join(lines, "\n") +" endfunction + +function! Bar() abort + bar +endfunction + +function! Foo() + try + call Bar() + catch /.*/ + let bt = lh#exception#callstack(v:throwpoint) + let data = map(copy(bt), '{"filename": v:val.script, "text": "called from here", "lnum": v:val.pos}') + let data[0].text = v:exception + call setqflist(data) + endtry +endfunction + +" command! -nargs=0 HelloWorld call HelloWorld() +" command! -nargs=0 Hpy exec('py hello("ls")') +" command! -nargs=0 Test call Test() +" command! -nargs=0 Gv call Get_visual_selection() +" command! -nargs=0 GV call GetVisualSelection() +