37503Re: VIM-Crash after "Hit Enter ...": logged with verbose=20
- Aug 29, 2004Bram Moolenaar Sent: 29 Aug 2004 22:02:29 +0200:
> What Vim commands do I use to define this subroutine?I understand the need for a crash-report to have the
> Without that info I can't reproduce the problem.
> Please find the shortest example that causes the problem.
> "<code>" doesn't work, you must put something there that
> does work to be able to reproduce the problem.
shortest possible reproducible example. I have tried, but
have been unable to create a simple example.
However, I can provide the original code and the steps to go
through. When I go through those steps, gvim crashes.
First, here's a recap:
Gvim is released 6.3, Big version with GUI, compiled
Jun 7 2004 14:20:56. OS is Windows 98.
After executing an embedded perl subroutine and returning
SUCCESSFULLY from it, the gvim session crashes every once
in about 3 times. The crash happens after the perl-code
does its thing properly and returns control of gvim to the
Crash happens even after doing the following in vimrc:
let no_buffers_menu = 1
let did_install_default_menus = 1
let did_install_syntax_menu = 1
and unregistering gvim.
But crashes do not happen if, in the perl code, all the
all the buffwipeout commands (:bw) are changed to
Finally, when :bun is used instead of :bw, crashes do not
happen even if gvim is registered, guioptions is set to
acM, and the preceding three lets are not done.
Here's how to reproduce the crash.
1) Plugin is http://www.vim.org/scripts/script.php?script_id=1052
2) In creating vimfiles/mail/_tmsrc, the only critical items
for the test will be the directories
3) Create a sub-folder under dir_mail_home (say,
dir_mail_home is d:/tms and this sub-folder is atest).
Then copy some (any 10 or more) .eml files into
d:/tms/atest. .eml files can be copied, for example, by
selecting them in Outlook and draging and dropping.
4) The file vimfiles/mail/tms.vim defines some maps.
The maps involved in this test are: \i, \o, and \d.
5) Do \i; a prompt will come up; respond atest at the
prompt. This will create the files index.raw and
index.idx inside the folder d:/tms/atest.
6) Open d:/tms/atest/index.idx. Pick a line (other than the
header and border lines) and do \o. A new window will
appear with a .eml file.
7) Then do some scrolling, unfolding etc. commands in the
.eml file. Then do \d, while bracing yourself for a
8) The buffer will be wiped out and replaced by a new .eml
buffer (corresponding to the "next line" in the
index.idx file). Repeat 7 in this buffer.
9) After a few repeats of 8, Vim might crash.
10) If vim does crash then do the following: In
vimfiles/plugin/tms.vim expose the line:
let g:tms_do_not_bw_in_perl = 1
This will change all the :bw in the embedded perl code
to :bun, and vim won't crash.
11) If you want to actually try out the plugin, be
sure to have valid entries for the mail servers
in the _tmsrc file; and to set up the passwords
(besides help tms, see vimfiles/mail/release_notes).
If you do go ahead with the test, let me know the results
and any other comments.
By the way, I have been using tms (with
tms_do_not_bw_in_perl let to 1) -- and am very happy with
it. Since the last release of tms, I have added filtering
capability: now, after downloading emails:
- emails are sorted into sub-folders of dir_mail_home
based on filtering rules
- a quickfix tags (or "errors.err") file is created based
on where the newly arrived files are.
- the cfile command is issued on the tags file
- User can then use quickfix commands to visit the folders
with newly arrived emails.
A request: I looked at the description of your upcoming
tutorial and noticed mention of using VIM for email. Please
consider mentioning the tms.vim plugin to send, receive and
organize email from within VIM!
- << Previous post in topic Next post in topic >>