diff options
-rw-r--r-- | autoload/scratch_buffer.vim | 19 | ||||
-rw-r--r-- | plugin/scratch_buffer.vim | 11 |
2 files changed, 29 insertions, 1 deletions
diff --git a/autoload/scratch_buffer.vim b/autoload/scratch_buffer.vim index c0ef7cf..4051fa5 100644 --- a/autoload/scratch_buffer.vim +++ b/autoload/scratch_buffer.vim @@ -1,11 +1,28 @@ +" Entry point for :ScratchBuffer command function! scratch_buffer#(mods, count, ...) abort + + " Start building command argument vector let command = [] + + " Add any modifiers first (e.g. :vertical) call add(command, a:mods) - if a:count + + " If a count of more than zero was provided, add that as a prefix for :new + if a:count > 0 call add(command, a:count) endif + + " Add the :new command call add(command, 'new') + + " Add any other arguments passed in call extend(command, a:000) + + " Execute the command execute join(command) + + " Set the new buffer to a scratch 'buftype' to stop it from saving and to + " reassure Vim that it doesn't need to be saved set buftype=nofile + endfunction diff --git a/plugin/scratch_buffer.vim b/plugin/scratch_buffer.vim index c209c8b..fe7a872 100644 --- a/plugin/scratch_buffer.vim +++ b/plugin/scratch_buffer.vim @@ -1,2 +1,13 @@ +" +" scratch_buffer.vim: User command to open a scratch buffer. +" +" Author: Tom Ryder <tom@sanctum.geek.nz> +" License: Same as Vim itself +" +if exists('loaded_alternate_filetypes') || &compatible + finish +endif + +" Command to open scratch buffer command! -bar -count=0 -nargs=* ScratchBuffer \ call scratch_buffer#(<q-mods>, <q-count>, <f-args>) |