Friday, December 18, 2020

Re: E77: Too many files

Hi,

Manfred Lotz schrieb am 18.12.2020 um 10:16:
> I have a simple scratch buffer functionity in scratch.vim like follows
>
> if exists('g:loaded_scratch')
> finish
> endif
> let g:loaded_scratch = 1
>
> let g:scratchbuf_no = 1
>
> function! ScratchEdit(cmd)
> exe a:cmd '[Scratch' . g:scratchbuf_no . ']'
> let g:scratchbuf_no += 1
>
> setlocal buflisted
> setlocal noswapfile
> setlocal buftype=nofile
> setlocal bufhidden=hide
> setlocal foldcolumn=0
> setlocal nonumber
> endfunction
>
> command! -bar -nargs=* Scratch call ScratchEdit('edit')
>
> (if above could/should be improved any advice is welcome)
>
>
> Sometimes when issueing :Scratch I get
>
> E77: Too many files
>
> Then after some minutes when switching buffers (but not having closed
> any buffer) I can do :Scratch without any errors.
>
> Any ideas how to find out what the cause is?
>

your constructed file name "[ScratchNNN]" is also a valid wildcard. If a
file named 'S' or 'c' or 'a' or so on, Vim will load this file into a
buffer.

My guess is that while the scratchbuf_no increases there will be both a
one-letter file name and a one-digit file name that Vim wants to load or
two one-digit file names. But because you use ":edit" to create the
scratch buffer and ":edit" only allows one single file name you get the
E77 error message.

If it happens again execute ":echo g:scratchbuf_no" and check what files
exist in your current directory.

Regards,
Jürgen

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/f564e8fa-3d30-8e83-35cb-ddb325075ff6%40googlemail.com.

No comments: