On Monday, March 11, 2013 3:05:53 PM UTC-5, Paul wrote:
> I have an record-based data file for an application that uses control
> 
> characters in some fields as flags for certain GUI options, e.g.:
> 
> 
> 
>    ^@
> 
>    ^A
> 
> 
> 
> It's barbaric to try and manipulate the data using the GUI, and I've
> 
> taken to vim'ing the text file.  However, it's rough going because the
> 
> fields aren't vertically aligned.  It would be much better if I could
> 
> massage the data in Excel, but the text import process seems to ignore
> 
> the control characters.  I can use the vim command line to replace the
> 
> control characters with their visual counterpart i.e. ^@ is replaced
> 
> by carat and at-sign (I'll refer to these as fake control
> 
> characters).  After importing into Excel and mushing the data, I
> 
> export it to text and use vim to clean it up, including converting the
> 
> fake control characters back to real control characters.
> 
> 
> 
> Therein lies my problem.  When I use the command line, this works:
> 
> 
> 
>    :% s=^@=^@=g
> 
> 
> 
> where the first ^@ is a fake control character while the second one is
> 
> real, obtained by prefixing the keystroke with ctrl-V.  However, when
> 
> I try to put this command in a vim script that I can ":source", it is
> 
> interpretted as an error.
> 
> 
> 
> After much reading, I found that I can match ^@ with \%x00 in the
> 
> search string, but I haven't found a way to specify control characters
> 
> in the substitution string.  Is there a way?

I think replacing with \n will work. See :help sub-replace-special. ^@ is 
special because Vim uses it internally to represent end-of-line. Most other 
control characters should work.

-- 
-- 
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