diff options
| author | Mohit <mohit.agarwal@sky.com> | 2024-11-02 17:08:32 +0000 |
|---|---|---|
| committer | Mohit <mohit.agarwal@sky.com> | 2024-11-02 17:08:32 +0000 |
| commit | 5d4f245be2cbcfc89357c10bc8f3a7139949cba3 (patch) | |
| tree | 8030bce528116d0ced4d2ea8eace61a88b86342f | |
| parent | 11adb05da19b177e7bf561378f565713e271a9f7 (diff) | |
Scimark
| -rw-r--r-- | autoload/scimark.vim | 75 | ||||
| -rwxr-xr-x | init.vim | 5 |
2 files changed, 80 insertions, 0 deletions
diff --git a/autoload/scimark.vim b/autoload/scimark.vim new file mode 100644 index 0000000..10b644e --- /dev/null +++ b/autoload/scimark.vim @@ -0,0 +1,75 @@ +" https://github.com/mipmip/vim-scimark/blob/master/plugin/scimark.vim +" + +function! InitVariable(var, value) + if !exists(a:var) + exec 'let ' . a:var . ' = ' . "'" . a:value . "'" + return 1 + endif + return 0 +endfunction + +call InitVariable("g:scimCommand", "sc-im") + +function! OpenInScim() + let lineundercursor=getline('.') + let curlinenumber = line('.') + + if lineundercursor=~?'|.*|$' + + while lineundercursor=~?'|.*|$' + let curlinenumber = curlinenumber -1 + let lineundercursor=getline(curlinenumber) + endwhile + + let lineundercursor=getline(curlinenumber+1) + let g:scimarkTableTopLine = curlinenumber+1 + let fileLines = [] + + while lineundercursor=~?'|.*|$' + let curlinenumber = curlinenumber + 1 + let lineundercursor = getline(curlinenumber) + call add(fileLines, lineundercursor) + endwhile + + let g:scimarkTempFile = tempname() . '.md' + let g:scimarkOpenerBuffer = bufnr("%") + let g:scimarkOpenerFile = expand("%") + let g:scimarkTableBottonLine = curlinenumber-1 + let g:scimarkOpenerWindow = winnr() + + if writefile(fileLines, g:scimarkTempFile) + echomsg 'write error' + else + if has('nvim') + exe 'split(:sp)' + call termopen(g:scimCommand . ' ' . g:scimarkTempFile, { 'on_exit': 'g:ReadFromScimNeoVim', 'on_stdout': 'NeoVimStartInsert'}) + else + call term_start(g:scimCommand . ' ' . g:scimarkTempFile, { 'exit_cb': function('g:ReadFromScimVim')}) + endif + endif + endif + +endfunction + +function! g:ReadFromScimVim(job,exit_code) + call g:ReadFromScim() +endfunction + +function! g:NeoVimStartInsert(job,data,event) + exe 'startinsert' +endfunction +function! g:ReadFromScimNeoVim(job,data,event) + call g:ReadFromScim() +endfunction + +function! g:ReadFromScim() + exe g:scimarkOpenerWindow . "wincmd w | wincmd c" + exe 'buffer! '. g:scimarkOpenerBuffer + exe g:scimarkTableTopLine.','.g:scimarkTableBottonLine.'d' + call cursor(g:scimarkTableTopLine-1,0) + exe 'r '.g:scimarkTempFile +endfunction + +command! OpenInScim :call OpenInScim() +nmap <leader>sc :OpenInScim<CR> @@ -138,6 +138,9 @@ autocmd FileType bib map <buffer> <leader>mi A<cr>@misc{,<cr>title = {{}},<cr>au autocmd FileType tex map <buffer> <leader>it a\textit{}<Esc>i autocmd FileType tex map <buffer> <leader>bf a\textbf{}<Esc>i +command! OpenInScim :call scimark#OpenInScim() +nmap <leader>sc :OpenInScim<CR> + " marker at 70th character set colorcolumn=71 @@ -148,5 +151,7 @@ set cursorline set modeline try + colorscheme vim +catch colorscheme default endtry |
