On Oct 17, 2013 5:50 PM, "Yggdroot Chen" <[email protected]> wrote:
>
> I encounter a critical issue when writing vim script using python, for
example the code is as below:
>
> def func():
>     try:
>         while 1:
>             xxx
>             xxx
>     except KeyboardInterrupt:
>         pass
>
>     vim.command("xxxx")
>
> I press ctrl-c to interrupt the program, after KeyboardInterrupt is
raised, vim.command() always throw an exception,which is KeyboardInterrupt
in vim7.3 and vim.error in vim7.4.
>
> I want to use "signal.signal(signal.SIGINT, signal.SIG_IGN)" to ignore
SIGINT,but it doesn't work.

Interrupt signals are already ignored.

vim.command is now "wrapped in a try-catch block" (it is really a pair of C
functions). All vim exceptions are transformed into python ones, with
vim.error class, and Vim:Interrupt is one of them. Code that was used to
transform exceptions did change. You should now catch vim.error and match
against error string: got_int apparently is not set inside :try/:catch
because interrupts are transformed into exceptions thus code (present in
VimTryEnd) that should be preferring raising KeyboardInterrupts over
vim.error is useless.

And note that it is currently not possible to interrupt python code in most
cases: signals are ignored and input is not polled when running python code.

> Any one knows this issue?
>
> --
> --
> 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 [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
-- 
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to