Как сократить пути в буфере grep? - PullRequest
2 голосов
/ 30 сентября 2011

Возможно ли сократить пути в буфере результатов grep? По умолчанию каждая строка результатов grep в Emacs выглядит так:

/home/pawel/tmp/avro-src-1.5.4-fixed/lang/c/src/datum.c:107:int avro_string_set(avro_datum_t datum, const char *p)

, который занимает много места и выглядит грязно и не очень читабельно, особенно если рядом есть другое окно.

Я бы хотел видеть только имена файлов или частичные пути - если они уникальны в буфере grep, например:

datum.c:107:int avro_string_set(avro_datum_t datum, const char *p)

или

/home/(...)/src/datum.c:107:int avro_string_set(avro_datum_t datum, const char *p)

Я полагаю, что emacs должен знать полные пути внутри, так что речь идет только о отображении результатов grep, а не о работе с параметрами 'grep'. Как это сделать? Подойдут ли определения режима Hide-Show для буфера grep, или есть более простой способ сделать это?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 01 октября 2011

Я сделал один для вас: scf-mode . Он работает как вспомогательный режим, поэтому исходное имя файла может быть восстановлено при его отключении.

Инструкции по установке см. В заголовке файла.

2 голосов
/ 30 сентября 2011

Если вы знаете Emacs lisp, то это может быть не сложно реализовать.Вам просто нужно найти общую часть имен путей, удалить ее, сохранить общую часть в локальной переменной, а затем при открытии результата grep собрать полный путь из сохраненных частей.

Этохорошая идея, и это улучшило бы читаемость вывода grep-find, поэтому, если вы не получите здесь ответа, я предлагаю опубликовать вопрос в справке emacs .Там есть опытные пользователи, которые могут быстро составить решение, если найдут идею полезной.

0 голосов
/ 07 октября 2011

Просто M-x cd /home/pawel/tmp/avro-src-1.5.4-fixed/lang/c/src/ перед запуском M-x grep.

Части каталога будут получены только для grep обращений, если попадания файлов не находятся в текущем каталоге (default-directory).

0 голосов
/ 30 сентября 2011

Какую версию Emacs вы используете?когда я запускаю grep на моем emacs (23.3.1), я не получаю пути, например:

file1:25:some result
file2:26:some other result

, что происходит на вашем компьютере, когда вы запускаете ту же команду grep за пределами emacs?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...