Emacs на Windows - PullRequest
       4

Emacs на Windows

2 голосов
/ 13 октября 2010

У меня проблемы с rgrep / find на emacs. Любой поиск возвращает 0 результатов с этим сообщением:

Неверный синтаксис имени файла, имени каталога или метки тома.

Grep завершен без совпадений.

Я использую находку в комплекте с cygwin, поэтому мне любопытно, если ввод d: / workspace не работает, потому что find использует cygwin для доступа к диску (поэтому правильный путь будет / cygdrive / d / workspace). Тем не менее, emacs будет блокироваться в / cygdrive / d / workspace, так как он не читает его таким образом.

Мне любопытно, почему я единственный, кто сталкивается с этой проблемой, когда Cygwin Find часто используется с emacs.

Различные проблемы сейчас.

Когда я выполняю rgrep, я всегда получаю одно и то же «найти: отсутствующий аргумент для -name». Google ничего не нашел по этой проблеме, если я выполню grep самостоятельно. У меня нет ссылок на номера строк, поэтому я получаю отчет о том, где находится текст, но я не могу щелкнуть ни одну из них, чтобы открыть этот файл.

Ответы [ 3 ]

1 голос
/ 13 октября 2010

Для простоты установки, а также производительности, я бы порекомендовал использовать версию emacs для Windows и gnu win32 версии find и grep и т. Д. Важно, чтобы Двоичные файлы для этих инструментов находятся на вашем пути, прежде чем Cygwin.

0 голосов
/ 16 октября 2010

Извините, я должен ответить здесь сам.Мне пришлось использовать специально для Windows версию emacs (а не только порт), чтобы все работало с grep и find.

0 голосов
/ 13 октября 2010

(я полагаю, вы говорите об использовании grep-find, но, возможно, я ошибаюсь.)

Я согласен с тем, что часть проблемы заключается в передаче cygwin find d: / workspace. Мне никогда не удавалось смешивать Cygwin и не-Cygwin вещи вместе. Рассматривали ли вы использование сборок emacs (или XEmacs) для cygwin?

Когда я что-то микшировал, я настроил все так, чтобы не-cygwin-версия emacs знала имена дисков cygwin. У меня было два разных решения в моем файле .emacs (на самом деле .xemacs / init.el), одно для emacs и одно для XEmacs.

    ;;
;; Life with Cygwin
;;
(if am-i-running-xemacs-p
    ; true - I am running XEmacs
    (progn
;;--      (setq directory-abbrev-alist
;;--        (append directory-abbrev-alist
;;--                '(("^/cygdrive/a/" . "a:/")
;;--                  ("^/cygdrive/b/" . "b:/")
;;--                  ("^/cygdrive/c/" . "c:/")
;;--                  ("^/cygdrive/d/" . "d:/")
;;--                  ("^/cygdrive/e/" . "e:/")
;;--                  ("^/cygdrive/f/" . "f:/")
;;--                  ("^/cygdrive/g/" . "g:/")
;;--                  ("^/cygdrive/h/" . "h:/")
;;--                  ("^/cygdrive/i/" . "i:/")
;;--                  ("^/usr/" .        "d:/cygwin/usr/")
;;--                  ("^/homes/" .      "d:/cygwin/homes/")
;;--                  ("^/etc/" .        "d:/cygwin/etc/")
;;--                  ("^/lib/" .        "d:/cygwin/lib/")
;;--                  ("^/var/" .        "d:/cygwin/var/")
;;--                  ("^/include/" .    "d:/cygwin/include/")
;;--                  ("^/info/" .       "d:/cygwin/info/")
;;-                   ("^/" . "c:\\"))
;;--                ))
            )
      )
    ; false (else) - I am Not running XEmacs
    (progn
       (require 'cygwin32-mount)

       ;; make cygwin symlinks accessible
       (defun follow-cygwin-symlink ()
         (save-excursion
           (goto-char 0)
           (if (looking-at "!<symlink>")
               (progn
                 (re-search-forward "!<symlink>\\(.*\\)\0")
                 (find-alternate-file (match-string 1)))
             )))
       (add-hook 'find-file-hooks 'follow-cygwin-symlink)
))

Я больше не использую их, так как, попав в Cygwin, я остаюсь в Cygwin (т.е. Cygwin Emacs, Cygwin Find).

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