in reply to Re^2: How do I create a simple, perl-based text filter for Vim
in thread How do I create a simple, perl-based text filter for Vim
- as someone already mentioned, try using just <> instead of <STDIN>, which may work better with the C library on Windows, although I'm not sure why it would
- Try using read() in a loop instead of the bracket operator.
- Try playing with buffering. It shouldn't make a difference, of course, since you're getting both what's before the text and after it in the same print(). I'd consider it an unknown here, just because the results seem so bizarre.
- Try some simple debugging on the program, even though the source is working. Make sure your perl gets the variable filled when the script is run from the command line. You've probably already done this, but I can see how it'd be overlooked for such a simple project.
If all else fails, remember that from within vim you can edit a second file, save it, etc. You could yank the needed text, ':new temp' to edit another file, put (paste) the text there, ':w' to write the file, ':!./filter temp' to change the temp file on disk, yank the changed version from that window, quit the new window, reselect the portion in the original file, and paste the buffer over the original section. Since vim has a macro recording function, I'd record parts of that mess as macros. That may be part of what you're trying to avoid, too, though. In any case, it's probably more of a pain than you want.
Christopher E. Stith
|
---|