2009-12-03 1 views
1

В emacs, когда вы вводите M-x find-name-dired, вы получите две подсказки. Первый - это путь каталога, в который вы хотите выполнить поиск, а второй - это то, что шаблон файла вы хотели бы искать.emacs - find-name-dired - как изменить каталог по умолчанию

Как его изменить (в моем .emacs), так что первое приглашение всегда является конкретной директорией проекта?

Кроме того, как это сделать, чтобы поиск имени файла был нечувствительным к регистру?

ответ

7

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

(defadvice find-name-dired (before find-name-dired-with-default-directory activate) 
    "change the argument reading" 
    (interactive 
    (let ((default-directory "/some/path")) 
    (call-interactively 'get-args-for-my-find-name-dired)))) 

(defun get-args-for-my-find-name-dired (dir pattern) 
    (interactive "DFind-name (directory): \nsFind-name (filename wildcard): ") 
    (list dir pattern)) 

И тогда вы просто позвоните мой, найти имя-Dired.

Что касается нечувствительности к регистру, вы можете настроить переменную find-name-arg быть чувствительна к регистру версия:

(setq find-name-arg "-iname") 
+0

Спасибо Трей, что отлично поработал – RobKohr

1

Я подозреваю, что ответ Трея, вероятно, элегантный и предпочтительный по некоторым причинам, что болеет мой мозг всякий раз, когда я пытаюсь обращал внимание (defadvice), но я бы взял перебор простой подход и использовать следующие:

Я предполагаю, что я теряю историю с этим подходом, так что если это важно для вас подход Трея лучше.

Один из этих дней я должен обернуть вокруг головы (defadvice)

+0

Лучший способ понять, как использовать совет - пройти через учебник в начале (в комментариях) самой библиотеки рекомендаций. Либо «Mx find-library advice RET», либо посмотрите на источник здесь: http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/advice.el –

+0

Согласен, Trey's был немного выше меня, и у вас было больше смысла, хотя по какой-то причине шаблон, по умолчанию ваш был ~/(это не запрашивало каталог, а фактический шаблон файла). Pajato0, можете ли вы внести незначительные изменения в свой ответ, чтобы я мог его проголосовать. Голосование, похоже, заблокировано вашим ответом. – RobKohr

0

После того как я отправил это я обнаружил еще один способ решения этой проблемы:

(add-hook 'find file-hook 
(lambda() 
    (setq default-directory command-line-default-directory))) 

Это осталось по умолчанию каталог, в котором Я начал использовать emacs (что полезно, поэтому вам не нужно постоянно менять каталог проектов в emacs).

В действительности, я думаю, он говорит, что каждый раз, когда вы запускаете файл поиска, измените каталог по умолчанию на начальную директорию командной строки.

Другое дело, может быть, чтобы установить директорию по умолчанию: (SETQ мой-умолчанию-каталог «/ Главная/грабят/все»)

и заменить командной строки-умолчанию-каталог с моим-умолчанию-каталог/

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

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