Ответ на сообщение «Re: CRLF behavior with :!», 
присланное в 11:33:47 13 октября 2010, Среда.
Отправитель: Gary Johnson:

Sometimes after I kill vim I get this stair-stepping in a terminal, but if I do 
``stty onlcr'' everything gets fine (in zsh this can be fixed by putting 
``ttyctl -f'' into .zshrc if you are interested. No calls to `stty' will be 
required then). Try to examine ``stty'' output (without arguments), on my 
machine it is
    speed 38400 baud; line = 0;
    erase = ^H;
    -brkint ixoff -imaxbel iutf8
both inside vim (:!stty) and in terminal. If it changes, try to find why: here 
``strace'' will be your friend, if I am not mistaking tty is controlled by 
``ioctl'' system call, so you need to find on what event it is called.

By the way, does the output of the following command echo the same stepping 
formation?:
    :!stty -onlcr && ls -l

Текст сообщения:
> On 2010-10-13, Jürgen Krämer wrote:
> > Hi
> > 
> > Jeenu wrote:
> > > I noticed that running commands like ':!svn info' from Vim in both
> > > Cygwin and Linux machines differ. On Linux machines, the output looked
> > > like how it's displayed in terminal. However, with Vim on Cygwin
> > > (PuTTYCyg client) I see no CR's, and the whole display take a stepping
> > > formation. Is these some option inside Vim which can control this
> > > behavior?
> > 
> > sounds like a misconfigured PuTTY. In the Windows version there is an
> > option "Implicit CR in every LF" in the "Terminal" part of the
> > configuration dialog. Is this option present and checked?
> 
> It's not just a problem with PuTTY; mintty does this, too, and there
> is no setting among mintty's options to correct this.  No other
> application that I've run in mintty does this, just Vim.  It's been
> one of those annoyances I just haven't had the time to investigate
> properly.
> 
> I read this list using mutt on a machine running Cygwin.  At the
> moment, I'm logged into that machine via from a laptop which is also
> running Cygwin.  The terminal is mintty.  From mutt, I can execute
> 
>     !ls
> 
> and see a properly-formatted result.  If instead I execute
> 
>     !vim
> 
> and from within Vim execute
> 
>     :!ls
> 
> I get the stair-stepped result reported by Jeenu.
> 
> Also, the behavior is inconsistent.  Again, I haven't taken the time
> to study this carefully, but sometimes the output from a :! command
> does have the proper formatting.  It's as though Vim only sometimes
> forgets to include the CR.
> 
> My workaround has been to pipe the output of :! commands through
> u2d, as
> 
>     :!ls | u2d
> 
> OK, I just tried another experiment.  I opened a new mintty terminal
> on the laptop--no ssh.  "ls" works fine.  I executed "less" on a
> file and within less, executed
> 
>     !ls
> 
> Again, the formatting was correct.  I then executed
> 
>     !vim
> 
> and within the resulting Vim executed
> 
>     :!ls
> 
> The formatting was correct!  I executed the same ":!ls" command and
> the formatting was still correct.  Then I hit Enter so that the
> output of the two ls commands was cleared from the screen and the
> cursor returned to the upper left corner of the Vim window.  Then I
> executed
> 
>     :!ls
> 
> again, but this time the output was stair-stepped!
> 
> I exited vim, which returned me to less, and with less executed
> "!ls" again.  The output was correctly formatted--no stair stepping.
> 
> Since I haven't identified the root cause, it could be a problem in
> both mintty and PuTTY (I believe mintty is derived from PuTTY), but
> it certainly appears that Vim doesn't always set or reset something
> (the line discipline?) correctly.  Mutt and less both appear to do
> this correctly.
> 
> Regards,
> Gary

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to