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)
+