2014-11-19 1 views
1

Я создал список имен файлов и сделал некоторую квалификацию тех, которые я хочу. Теперь я хотел бы запустить «ls -l» в этом списке и поместить результат в буфер в режиме ожидания. Прямо сейчас я запускаю find-grep-dired для получения файлов, которые имеют совпадения с регулярным выражением . Но команде find требуется несколько минут для запуска в моей среде, , и я должен запускать ее несколько раз для каждого из нескольких шаблонов. Я тоже нетерпеливый ждать результатов.Как я могу поместить буфер в режим ожидания?

Я пробовал просто считывать значение ls -l в буфер и затем выполнять «dired-mode». Но «dired-mode» не является функцией, тем более жаль.

Спасибо.

+0

Привет, я не понимаю, что ваши «квалификации» и почему вы говорите о 'Ls -l' но потом о оглавлению. Во всяком случае, «helm-grep» считается быстрее, чем исходный emacs grep, а 'ack' считается самым быстрым из всех: см. Https://github.com/emacs-helm/helm/wiki и https: // github .com/syohex/emacs-helm-ack – Ehvince

+1

Я думаю, что эта ветка может помочь: http://superuser.com/a/807979/206164 По сути, вы можете создать список и открыть бутилированный буфер с помощью множества несвязанных файлов и каталоги - например, '(dired '(" * my-dired-buffer * "" DIR1 "" FILE1 "" DIR2 "" FILE2 "" FILE3 "))' – lawlist

+0

Dired-mode использует 'ls', поэтому нет повод для запуска 'ls' заранее - просто установите' dired-listing-switch' по своему вкусу - они могут быть привязаны к длительности вашей функции, а ваш буфер (указанный в предыдущем комментарии) будет содержать файлы и каталоги по вашему выбору с соответствующими данными 'ls'. – lawlist

ответ

0

Строго говоря, ответ на этот вопрос:

M-хvirtual-diredRET

Если у вас есть буфер, содержащий вывод ls -lR <dir> то эта команда будет преобразовать его в Dired буфер.

Аргумент -R означает, что путь к каждому из перечисленных каталогов включен, а Emacs выбирает это значение по умолчанию, когда оно запрашивает путь к каталогу.

Конечно, вы не всегда хотите рекурсивный список; но если у вас есть только один список каталогов через ls -l, тогда эта строка заголовка не будет включена, и вам нужно будет ввести каталог вручную в приглашении.

Конечно, вы можете легко создавать эту линию самостоятельно работать вокруг проблемы:

printf "%s:\n" $(pwd) && ls -l 

Edit: я не заметил, что это было частью dired-x библиотеки, которая не ауто- загружен. Смотрите руководство:
С-Няг(dired-x)RET

+0

Это странно. У меня emacs 24.3.1, но у меня нет виртуального. Помимо этой детали, это и документация в вики emacs, по-видимому, подразумевают, что это то, что мне нужно было все время. –

 Смежные вопросы

  • Нет связанных вопросов^_^