annotate vim/bundle/scratch/plugin/scratch.vim @ 172:dda5a5441f48

Ignore Vimperator keys on `newsblur.com`.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 10 Jul 2014 10:58:14 -0700
parents 89c7493e3442
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 " File: scratch.vim
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 " Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 " Version: 1.0
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 " Last Modified: June 3, 2003
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 " Overview
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 " --------
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 " You can use the scratch plugin to create a temporary scratch buffer to store
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 " and edit text that will be discarded when you quit/exit vim. The contents
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 " of the scratch buffer are not saved/stored in a file.
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12 " Installation
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 " ------------
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 " 1. Copy the scratch.vim plugin to the $HOME/.vim/plugin directory. Refer to
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 " the following Vim help topics for more information about Vim plugins:
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 " :help add-plugin
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 " :help add-global-plugin
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 " :help runtimepath
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 " 2. Restart Vim.
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 " Usage
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 " -----
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 " You can use the following command to open/edit the scratch buffer:
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 " :Scratch
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 " To open the scratch buffer in a new split window, use the following command:
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 " :Sscratch
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 " When you close the scratch buffer window, the buffer will retain the
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 " contents. You can again edit the scratch buffer by openeing it using one of
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 " the above commands. There is no need to save the scatch buffer.
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 " When you quit/exit Vim, the contents of the scratch buffer will be lost.
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 " You will not be prompted to save the contents of the modified scratch
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 " buffer.
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 " You can have only one scratch buffer open in a single Vim instance. If the
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42 " current buffer has unsaved modifications, then the scratch buffer will be
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 " opened in a new window
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 "
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45 " ****************** Do not modify after this line ************************
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46 if exists('loaded_scratch') || &cp
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47 finish
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48 endif
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49 let loaded_scratch=1
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
51 " Scratch buffer name
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
52 let ScratchBufferName = "__Scratch__"
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
54 " ScratchBufferOpen
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
55 " Open the scratch buffer
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
56 function! s:ScratchBufferOpen(new_win)
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
57 let split_win = a:new_win
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
58
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
59 " If the current buffer is modified then open the scratch buffer in a new
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
60 " window
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
61 if !split_win && &modified
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62 let split_win = 1
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
63 endif
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
64
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
65 " Check whether the scratch buffer is already created
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66 let scr_bufnum = bufnr(g:ScratchBufferName)
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67 if scr_bufnum == -1
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
68 " open a new scratch buffer
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
69 if split_win
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
70 exe "new " . g:ScratchBufferName
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
71 else
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
72 exe "edit " . g:ScratchBufferName
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73 endif
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 else
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 " Scratch buffer is already created. Check whether it is open
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76 " in one of the windows
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 let scr_winnum = bufwinnr(scr_bufnum)
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78 if scr_winnum != -1
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 " Jump to the window which has the scratch buffer if we are not
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
80 " already in that window
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81 if winnr() != scr_winnum
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82 exe scr_winnum . "wincmd w"
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 endif
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 else
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85 " Create a new scratch buffer
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
86 if split_win
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
87 exe "split +buffer" . scr_bufnum
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
88 else
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89 exe "buffer " . scr_bufnum
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
90 endif
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
91 endif
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
92 endif
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
93 endfunction
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
94
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
95 " ScratchMarkBuffer
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
96 " Mark a buffer as scratch
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
97 function! s:ScratchMarkBuffer()
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
98 setlocal buftype=nofile
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
99 setlocal bufhidden=hide
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
100 setlocal noswapfile
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
101 setlocal buflisted
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
102 endfunction
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
103
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
104 autocmd BufNewFile __Scratch__ call s:ScratchMarkBuffer()
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
105
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
106 " Command to edit the scratch buffer in the current window
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
107 command! -nargs=0 Scratch call s:ScratchBufferOpen(0)
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
108 " Command to open the scratch buffer in a new split window
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
109 command! -nargs=0 Sscratch call s:ScratchBufferOpen(1)
89c7493e3442 Added 'scratch' plugin.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
110