Thursday, May 2, 2013

RE: Running Indent in a Cygwin Shell from GVim

>-----Original Message-----
>From: vim_use@googlegroups.com [mailto:vim_use@googlegroups.com] On Behalf Of Ben Fritz
>Sent: Thursday, May 02, 2013 7:58 AM
>To: vim_use@googlegroups.com
>Subject: Re: Running Indent in a Cygwin Shell from GVim
>
>On Wednesday, May 1, 2013 9:11:52 PM UTC-5, Bill Waters wrote:
>> This may be more of a Cygwin question, but I'll see if you guys can
>> help...
>>
>>
>>
>> I am trying to use indent
>> (http://www.gnu.org/software/indent/manual/indent.html) on my new Win7 machine. When I ran it from GVim, I got a bunch of ^M characters inserted into the result.
>>
>>
>>
>> I had the same problem running it in a standalone Cygwin shell. I
>> tracked that back to the fact that the drive was getting mounted as
>> binary instead of text. So, I changed the line in my
>> \cygwin\etc\fstab file to this...
>>
>>
>>
>> none /cygdrive cygdrive text,noacl,posix=0,user 0 0
>>
>> ^^^^
>>
>>
>>
>> Then the output from indent looks as expected, with no ^M characters.
>>
>>
>>
>> Unfortunately, I still get output with ^M characters when I run indent from GVim.
>>
>>
>>
>> Here are the related settings in my _vimrc file:
>>
>>
>>
>> set shell=c:/cygwin/bin/bash.exe
>>
>> set shellcmdflag=-c
>>
>>
>>
>> " Run indent on the entire file
>>
>> nnoremap <silent> <S-F7> :%!indent<CR>
>>
>>
>>
>> Any ideas as to how to resolve this?
>>
>>
>>
>> Thanks,
>>
>> Bill
>
>Would I be assuming correctly that the file you're running 'indent'
>on has Windows-stlye line endings?

The fileformat is dos.


>I'm not sure how to work around this if that's the case, but you
>could try piping it through tr to remove the trailing line endings
>before it gets to Vim. Or you could follow up the indent command
>with a simple :%s#\r$## command to remove them after they get back
>to Vim.

Yeah, you would think that would work. But the formatting is all off with the ^M characters inserted. Even simple things like the number of leading spaces from one line of code made up of a basic assignment statement to the next line.

I think that the root of the problem is that in the shell from GVim the file is getting treated as binary instead of text. Not sure how to fix that.

Typing that gave me a thought... I removed these lines...

set shell=c:/cygwin/bin/bash.exe
set shellcmdflag=-c

So, now the shell is "C:\Windows\system32\cmd.exe". Then when I run indent in GVim I don't get any ^M characters in the result.

I'd rather use the cygwin shell though.

Thanks,
Bill


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

No comments:

Post a Comment