> And when you say "slow" do you mean slow in receiving Grep output, > slow in displaying the received output, or slow in moving though the > *grep* buffer after everything was displayed? Slow in receiving, slow in displaying, or but not slow in moving though the hidden parts of long lines. >> Then instead of hiding long lines using font-lock, >> I tried to do the same using the process filter: >> >> (defun grep-filter () >> (save-excursion >> (let ((end (point-marker))) >> (goto-char compilation-filter-start) >> (forward-line 0) >> (while (< (point) end) >> (let ((eol (line-end-position))) >> (when (> (- eol (point)) 64) >> (put-text-property (+ 64 (point)) (line-end-position) >> 'display "[…]")) >> (forward-line 1)))))) >> >> Still very slow. > > Same question as above. Slow in receiving and slow in displaying. >> Then tried to delete the excessive parts of long lines: >> >> (defun grep-filter-try () >> (save-excursion >> (let ((end (point-marker))) >> (goto-char compilation-filter-start) >> (forward-line 0) >> (while (< (point) end) >> (let ((eol (line-end-position))) >> (when (> (- eol (point)) 64) >> (delete-region (min (+ 64 (point)) (point-max)) (line-end-position))) >> (forward-line 1)))))) >> >> Now Emacs becomes more responsive. But still output processing >> takes too much time. > > What is "output processing", and how did you measure the time it > takes? Measuring visually, it takes too much time to output the long lines. >> Finally, the last thing to try was the same solution that Richard >> showed in bug#44941: >> >> grep -a "$@" | cut -c -200 >> >> that gives the best possible result. >> >> I doubt that it would be possible to invent something better. >> >> So the question is should this be customizable for adding >> `cut -c` automatically to the end of the grep command line, >> possibly with `stdbuf -oL` suggested by Andreas. > > I suggested to request the equivalent of "cut -c" to be a feature > added to Grep. > > Failing that, I don't think Emacs should do something like that, > especially since 'cut' is not guaranteed to be available. Users who > have such problems can, of course, modify the Grep command to do that. Finally I solved the long-standing problem by customizing grep-find-template to "find -type f -print0 | sort -z | xargs -0 -e grep --color=always -inH -e | cut -c -200" I'm not sure if something like this could be added to grep, but here is an example how such a new option could look: