help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How speedup find-dired?


From: Oleksandr Gavenko
Subject: Re: How speedup find-dired?
Date: Tue, 18 Jan 2011 12:08:07 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7

On 18.01.2011 0:57, Eli Zaretskii wrote:
From: Oleksandr Gavenko<gavenkoa@gmail.com>
Date: Mon, 17 Jan 2011 23:59:31 +0200

I use Cygwin/Windows combination.

Default value of 'find-ls-option' is:

    ("-ls" . "-gilsb")

or which in my case:

    ("-exec ls -ld {} \\;" . "-ld")

Invoking ls for every file is too slow (~= 3 file per sec).

I lost you right here: doesn't `("-ls" . "-gilsb")' work for you?
That should cause Emacs to invoke "find ... -ls", instead of invoking
a separate `ls' program for each file.

Thanks in replay, and sorry for a lot of words ((

I wrote that I try "-ls", but see output:

  $ find . -ls
562949953421501 2 -rw-r--r-- 1 user Отсутствует 1539 июн 16 2010 ./.emacs 14355223812252264 24 -rw-r--r-- 1 user Отсутствует 47724 янв 18 09:46 ./.emacs-my 844424930132155 2 -rw-r--r-- 1 user Отсутствует 828 янв 18 09:44 ./.emacs-post 562949953421500 1 -rw-r--r-- 1 user Отсутствует 209 янв 17 15:07 ./.emacs-pre

As I wrote there are many useless data, I need only file names!
There so many useless data that file names truncated to next line!

As wrote it is not easy possible to force parse simple find output by dired, like
with 'find . -print'.

Now I stop on GNU find:

(setq find-ls-option '("-printf '-rw-rw-rw- 0 %AY-%Am-%Ad %AH:%AM %p\n'" . ""))

This format parsed by 'dired-insert-set-properties' and output aligned by column.

Also, if your `find' and `ls' ports are slow, I would look for faster
ports rather than for "portable" tweaks of Emacs.  Tweaks that seek to
fix platform-specific bugs or misfeatures can never be portable, in my
experience.

I use Cygwin and think that it provide very good packages!

It is allow me use native Emacs much easy as on Linux.

ls (GNU coreutils) 8.5
find (GNU findutils) 4.5.9

I happy by making dired platform independent as solution based only on Emacs primitives.
This also allow me to make dired look and feel common to all platform
and don't care about 'ls' flavor.

I expect Emacs make things like listening files/dirs,
searching for files and for file's content built in. But it is not true.

Why maintain 'directory-listing-before-filename-regexp' like regexp (about 1600 chars length string) and many 'if' statement instead having internal 'find' analog?

My point is when I promote Emacs to my colleagues I must say that they need
find/grep/ls. Some of this people don't know what is this at all.

They say that their favorite IDE make this out of the box and
surprised that Emacs can not just handle such simple things.

I try set

    (setq find-ls-option '("-print" . ""))

Did you try

   (setq find-ls-option '("-ls" . "-gilsb"))

?  If you did, what happened?

See upper.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]