File: scratch.vim

package info (click to toggle)
vim-vimtex 2.16-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 8,660 kB
  • sloc: makefile: 367; python: 103
file content (69 lines) | stat: -rw-r--r-- 1,536 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
" VimTeX - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve LervÄg
" Email:      karl.yngve@gmail.com
"

function! vimtex#scratch#new(opts) abort " {{{1
  let l:buf = extend(deepcopy(s:scratch), a:opts)
  call l:buf.open()
endfunction

" }}}1


let s:scratch = {
      \ 'name' : 'VimtexScratch'
      \}
function! s:scratch.open() abort dict " {{{1
  let l:bufnr = bufnr('')
  let l:vimtex = get(b:, 'vimtex', {})

  silent execute 'keepalt edit' escape(self.name, ' ')

  let self.prev_bufnr = l:bufnr
  let b:scratch = self
  let b:vimtex = l:vimtex

  setlocal noreadonly
  setlocal bufhidden=wipe
  setlocal buftype=nofile
  setlocal concealcursor=nvic
  setlocal conceallevel=0
  setlocal nobuflisted
  setlocal nolist
  setlocal nospell
  setlocal noswapfile
  setlocal nowrap
  setlocal tabstop=8

  nnoremap <silent><buffer><nowait> q     :call b:scratch.close()<cr>
  nnoremap <silent><buffer><nowait> <esc> :call b:scratch.close()<cr>
  nnoremap <silent><buffer><nowait> <c-6> :call b:scratch.close()<cr>
  nnoremap <silent><buffer><nowait> <c-^> :call b:scratch.close()<cr>
  nnoremap <silent><buffer><nowait> <c-e> :call b:scratch.close()<cr>

  if has_key(self, 'syntax')
    call self.syntax()
  endif

  call self.fill()
endfunction

" }}}1
function! s:scratch.close() abort dict " {{{1
  silent execute 'keepalt buffer' self.prev_bufnr
endfunction

" }}}1
function! s:scratch.fill() abort dict " {{{1
  setlocal modifiable
  %delete

  call self.print_content()

  0delete _
  setlocal nomodifiable
endfunction

" }}}1