aboutsummaryrefslogtreecommitdiff
path: root/autoload/write_mkpath.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/write_mkpath.vim')
-rw-r--r--autoload/write_mkpath.vim10
1 files changed, 9 insertions, 1 deletions
diff --git a/autoload/write_mkpath.vim b/autoload/write_mkpath.vim
index bfe45bd..6b1855d 100644
--- a/autoload/write_mkpath.vim
+++ b/autoload/write_mkpath.vim
@@ -18,9 +18,17 @@ function! write_mkpath#New(path) abort
endif
" Set filename to absolute path using :file {name}; do it silently so that
- " the nice name remains displayed to the user
+ " the nice name remains displayed to the user. Record the name of the
+ " alternate buffer first, so we can put it back after :file messes with it.
+ let alt = @#
execute 'silent file '.fnameescape(getcwd().'/'.a:path)
+ " That :file command will have set the alternate buffer to an unlisted
+ " buffer of the same name, which we don't want. Wipe it, and restore the
+ " previous alternative buffer.
+ bwipe #
+ let @# = alt
+
endfunction
" Handle a :write operation; prompt for directory creation if needed with