Mercurial > dotfiles
changeset 19:89c7493e3442
Added 'scratch' plugin.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 21 Nov 2011 17:12:22 -0800 |
parents | cec2213f938c |
children | b2ad38814e5f |
files | vim/.hgsubstate vim/bundle/scratch/plugin/scratch.vim |
diffstat | 2 files changed, 114 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/vim/.hgsubstate Mon Nov 21 17:12:03 2011 -0800 +++ b/vim/.hgsubstate Mon Nov 21 17:12:22 2011 -0800 @@ -1,7 +1,11 @@ c51066bd048ca47e9b6d1385703a4d3462ea8c93 bundle/colorschemes f19aee00f6b7a9c451a7aa168e05f0cdd0d99374 bundle/command-t +62b72580aba57cb5185bd077ac7a905c1c6893ea bundle/commentary 91190e67720f852c17602504d5225d4e675b6499 bundle/gundo +a995d4aabb794bd60028537ecb41ca7f2c738e65 bundle/haml 2b18a534162bc2c3964cb3a8fe42ca8c100bb571 bundle/markdown 30f6bcc30caf76bc1213f5c3d4001ba5d5fbe7fc bundle/nerdtree +bdc8b580b5b583aeb43efb19aac2ab8ce5566dff bundle/ragtag +cdffdd43816ddaeee858ae42da3ab6ddcfa25d19 bundle/repeat 688b5d706c21fbc6b2db6499f3cfbdeb35309b5a bundle/supertab 4eb2cdfccc016889acfa3b5d63e8f390a87863cf bundle/surround
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/bundle/scratch/plugin/scratch.vim Mon Nov 21 17:12:22 2011 -0800 @@ -0,0 +1,110 @@ +" File: scratch.vim +" Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) +" Version: 1.0 +" Last Modified: June 3, 2003 +" +" Overview +" -------- +" You can use the scratch plugin to create a temporary scratch buffer to store +" and edit text that will be discarded when you quit/exit vim. The contents +" of the scratch buffer are not saved/stored in a file. +" +" Installation +" ------------ +" 1. Copy the scratch.vim plugin to the $HOME/.vim/plugin directory. Refer to +" the following Vim help topics for more information about Vim plugins: +" +" :help add-plugin +" :help add-global-plugin +" :help runtimepath +" +" 2. Restart Vim. +" +" Usage +" ----- +" You can use the following command to open/edit the scratch buffer: +" +" :Scratch +" +" To open the scratch buffer in a new split window, use the following command: +" +" :Sscratch +" +" When you close the scratch buffer window, the buffer will retain the +" contents. You can again edit the scratch buffer by openeing it using one of +" the above commands. There is no need to save the scatch buffer. +" +" When you quit/exit Vim, the contents of the scratch buffer will be lost. +" You will not be prompted to save the contents of the modified scratch +" buffer. +" +" You can have only one scratch buffer open in a single Vim instance. If the +" current buffer has unsaved modifications, then the scratch buffer will be +" opened in a new window +" +" ****************** Do not modify after this line ************************ +if exists('loaded_scratch') || &cp + finish +endif +let loaded_scratch=1 + +" Scratch buffer name +let ScratchBufferName = "__Scratch__" + +" ScratchBufferOpen +" Open the scratch buffer +function! s:ScratchBufferOpen(new_win) + let split_win = a:new_win + + " If the current buffer is modified then open the scratch buffer in a new + " window + if !split_win && &modified + let split_win = 1 + endif + + " Check whether the scratch buffer is already created + let scr_bufnum = bufnr(g:ScratchBufferName) + if scr_bufnum == -1 + " open a new scratch buffer + if split_win + exe "new " . g:ScratchBufferName + else + exe "edit " . g:ScratchBufferName + endif + else + " Scratch buffer is already created. Check whether it is open + " in one of the windows + let scr_winnum = bufwinnr(scr_bufnum) + if scr_winnum != -1 + " Jump to the window which has the scratch buffer if we are not + " already in that window + if winnr() != scr_winnum + exe scr_winnum . "wincmd w" + endif + else + " Create a new scratch buffer + if split_win + exe "split +buffer" . scr_bufnum + else + exe "buffer " . scr_bufnum + endif + endif + endif +endfunction + +" ScratchMarkBuffer +" Mark a buffer as scratch +function! s:ScratchMarkBuffer() + setlocal buftype=nofile + setlocal bufhidden=hide + setlocal noswapfile + setlocal buflisted +endfunction + +autocmd BufNewFile __Scratch__ call s:ScratchMarkBuffer() + +" Command to edit the scratch buffer in the current window +command! -nargs=0 Scratch call s:ScratchBufferOpen(0) +" Command to open the scratch buffer in a new split window +command! -nargs=0 Sscratch call s:ScratchBufferOpen(1) +