Wrapg text at col. 80 on large-ish files - performance aspects.

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Wrapg text at col. 80 on large-ish files - performance aspects.

Chris Jones-44
What is the recommended way to wrap files at column 80 or thereabout
when dealing with 5,000-10,000 lines files without a major performance
hit?

I have tried issuing a ':set syntax off' command followed by running
different flavors of the gw command in normal or visual mode but this
may not be the most efficient approach performance-wise.

I tried searching for lines longer than 80 characters and running 'gwap'
on the paragraph where they appear using the :g/long-line/gwap but this
doesn't seem to help.

It takes something like 10 minutes to complete this task suggesting I am
not doing it right.

Is there a better way to do it inside a vim session or should I exit vim
and run one of a number of utilities from the shell command prompt?

I would prefer staying with my vim session for reasons not directly
related to the issue.

Thank you.

CJ

--
--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200315154450.GA9054%40turki.local.
Reply | Threaded
Open this post in threaded view
|

Re: Wrapg text at col. 80 on large-ish files - performance aspects.

Tim Chase
On 2020-03-15 11:44, Chris Jones wrote:
> What is the recommended way to wrap files at column 80 or thereabout
> when dealing with 5,000-10,000 lines files without a major
> performance hit?

Strange.  I do this regularly and have never encountered any issues.

Have you attempted it without any plugins/non-defaults?

  $ vim -u NONE file_with_long_lines.txt

Also, is there any difference if you use "gq" to reformat instead of
"gw" (maybe there's something weird in the "maintain the cursor
location" code)?

> I tried searching for lines longer than 80 characters and running
> 'gwap' on the paragraph where they appear using the
> :g/long-line/gwap but this doesn't seem to help.

I presume you mean something like

  :g/\%80c/norm gww

> It takes something like 10 minutes to complete this task suggesting
> I am not doing it right.

For a file that small, that's a ridiculous amount of time, so your
gut reaction is spot on.  But I'd far sooner point the finger at some
rogue plugin than point it at something you're "not doing right",
'cuz you *are* doing it right.

> Is there a better way to do it inside a vim session or should I
> exit vim and run one of a number of utilities from the shell
> command prompt?

The fmt(1) utility might lend a hand here, whether invoked inside vim:

  :%!fmt

or externally

  $ fmt -80 file_with_long_lines.txt > wrapped_file.txt

There's also a fold(1) utility that behaves similarly, with subtle
nuances in their differences, but for the most part, they should
behave roughly the same for this use-case.

Sorry that doesn't help on Windows by default, but fmt(1)/wrap(1)
should work on any Linux, Mac, or BSD box.

-tim





--
--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200315131056.455d525d%40bigbox.attlocal.net.
Reply | Threaded
Open this post in threaded view
|

Re: Wrapg text at col. 80 on large-ish files - performance aspects.

Chris Jones-44
On Sun, Mar 15, 2020 at 02:10:56PM EDT, Tim Chase wrote:

> On 2020-03-15 11:44, Chris Jones wrote:
> > What is the recommended way to wrap files at column 80 or thereabout
> > when dealing with 5,000-10,000 lines files without a major
> > performance hit?
>
> Strange.  I do this regularly and have never encountered any issues.
>
> Have you attempted it without any plugins/non-defaults?
>
>   $ vim -u NONE file_with_long_lines.txt
>
> Also, is there any difference if you use "gq" to reformat instead of
> "gw" (maybe there's something weird in the "maintain the cursor
> location" code)?
>
> > I tried searching for lines longer than 80 characters and running
> > 'gwap' on the paragraph where they appear using the
> > :g/long-line/gwap but this doesn't seem to help.
>
> I presume you mean something like
>
>   :g/\%80c/norm gww
>
> > It takes something like 10 minutes to complete this task suggesting
> > I am not doing it right.
>
> For a file that small, that's a ridiculous amount of time, so your
> gut reaction is spot on.  But I'd far sooner point the finger at some
> rogue plugin than point it at something you're "not doing right",
> 'cuz you *are* doing it right.
>
> > Is there a better way to do it inside a vim session or should I
> > exit vim and run one of a number of utilities from the shell
> > command prompt?
>
> The fmt(1) utility might lend a hand here, whether invoked inside vim:
>
>   :%!fmt
>
> or externally
>
>   $ fmt -80 file_with_long_lines.txt > wrapped_file.txt
>
> There's also a fold(1) utility that behaves similarly, with subtle
> nuances in their differences, but for the most part, they should
> behave roughly the same for this use-case.
>
[...]

With vim - u NONE... & a set tw=80 a (normal) gggwG is quasi instaneous
on a 5830 lines test file. With vim the way I have it set up ( that's
what I really meant by 'doing it wrong'...) the same scenario took 15-16
minutes to complete.

I don't have that many plugins installed/loaded (cscope, zoomwin, and
a few others that shouldn't interfere with buffer reformatting (they
look like the kind that presumably just sits there doing nothing until
you call them explicitly) so my impression is that this must be related
to stuff that might cause vim to refresh the screen automatically such
as perhaps my custom tabline and statusline (?)... after all if either
vim or a widely-used plugin was the culprit the chances are other people
would have had the problem & reported it.

In any event I'll take a hard look at all the crud that has accumulated
in my vim environment (~/.vimrc & ~/.vim/ directory) over the last 20
years and disable it.

As recommended I also gave the :%!fmt workaround a shot and likewise it
completed before I had time to take my hands off the keyboard.

Since I do not have the time now to look into this further I am going to
use this for the time being and do some vim spring cleaning in a big way
some time next month. I am thinking rebuilding my vim environment one
brick at a time... something long overdue... is probably what needs to
be done at this point.

Thank you very much indeed for your quick response and excellent advice.

CJ

--
--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200316161133.GB9054%40turki.local.
Reply | Threaded
Open this post in threaded view
|

Re: Wrap text at col. 80 on large-ish files - performance aspects.

Chris Jones-44
In reply to this post by Tim Chase
Fix typo in issue Subject (:s//Wrapg/wrap/)

--
--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200316161428.GC9054%40turki.local.
Reply | Threaded
Open this post in threaded view
|

Re: Wrapg text at col. 80 on large-ish files - performance aspects.

Tony Mechelynck
In reply to this post by Chris Jones-44
On Mon, Mar 16, 2020 at 5:11 PM Chris Jones <[hidden email]> wrote:

>
> On Sun, Mar 15, 2020 at 02:10:56PM EDT, Tim Chase wrote:
> > On 2020-03-15 11:44, Chris Jones wrote:
> > > What is the recommended way to wrap files at column 80 or thereabout
> > > when dealing with 5,000-10,000 lines files without a major
> > > performance hit?
> >
> > Strange.  I do this regularly and have never encountered any issues.
> >
> > Have you attempted it without any plugins/non-defaults?
> >
> >   $ vim -u NONE file_with_long_lines.txt
> >
> > Also, is there any difference if you use "gq" to reformat instead of
> > "gw" (maybe there's something weird in the "maintain the cursor
> > location" code)?
> >
> > > I tried searching for lines longer than 80 characters and running
> > > 'gwap' on the paragraph where they appear using the
> > > :g/long-line/gwap but this doesn't seem to help.
> >
> > I presume you mean something like
> >
> >   :g/\%80c/norm gww
> >
> > > It takes something like 10 minutes to complete this task suggesting
> > > I am not doing it right.
> >
> > For a file that small, that's a ridiculous amount of time, so your
> > gut reaction is spot on.  But I'd far sooner point the finger at some
> > rogue plugin than point it at something you're "not doing right",
> > 'cuz you *are* doing it right.
> >
> > > Is there a better way to do it inside a vim session or should I
> > > exit vim and run one of a number of utilities from the shell
> > > command prompt?
> >
> > The fmt(1) utility might lend a hand here, whether invoked inside vim:
> >
> >   :%!fmt
> >
> > or externally
> >
> >   $ fmt -80 file_with_long_lines.txt > wrapped_file.txt
> >
> > There's also a fold(1) utility that behaves similarly, with subtle
> > nuances in their differences, but for the most part, they should
> > behave roughly the same for this use-case.
> >
> [...]
>
> With vim - u NONE... & a set tw=80 a (normal) gggwG is quasi instaneous
> on a 5830 lines test file. With vim the way I have it set up ( that's
> what I really meant by 'doing it wrong'...) the same scenario took 15-16
> minutes to complete.
>
> I don't have that many plugins installed/loaded (cscope, zoomwin, and
> a few others that shouldn't interfere with buffer reformatting (they
> look like the kind that presumably just sits there doing nothing until
> you call them explicitly) so my impression is that this must be related
> to stuff that might cause vim to refresh the screen automatically such
> as perhaps my custom tabline and statusline (?)... after all if either
> vim or a widely-used plugin was the culprit the chances are other people
> would have had the problem & reported it.

To see if it's your custom tabline and/or statusline, you can load Vim
with your usual vimrc, then type

        :set tal= stl=

and see if it makes a difference. If it does, then retry by setting
the one but not the other to empty (both ways) to see if it's the one,
the other, or both. Then look for "slow stuff" in whichever is/are the
culprit.


Best regards,
Tony.

--
--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAJkCKXuTzVa0qzCJUismR-H%3DmD%3DDQGpYZHJFZPFXNmFXcg_5Kg%40mail.gmail.com.
Reply | Threaded
Open this post in threaded view
|

Re: wrap text at col. 80 on large-ish files - performance aspects.

Chris Jones-44
On Mon, Mar 16, 2020 at 01:35:45PM EDT, Tony Mechelynck wrote:
[..]

>
> To see if it's your custom tabline and/or statusline, you can load Vim
> with your usual vimrc, then type
>
>         :set tal= stl=
>
> and see if it makes a difference. If it does, then retry by setting
> the one but not the other to empty (both ways) to see if it's the one,
> the other, or both. Then look for "slow stuff" in whichever is/are the
> culprit.

Thanks. That'll save me some work/research.

CJ

--
--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200316183527.GD9054%40turki.local.