aboutsummaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
Diffstat (limited to 'autoload')
-rw-r--r--autoload/scratch_buffer.vim19
1 files changed, 18 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