12

私の場合、Mx grep、Mx lgrep、Mx rgrep は EmacsW32 では機能しません。

Mx lgrep を実行すると、grep はコマンドではないと表示されます。

grep -i -n "hello" * NUL
'grep' is not recognized as an internal or external command,
operable program or batch file.

Grep finished with no matches found at Sun Jan 31 05:59:06

また、そのNULのことは何ですか? EmacsW32 ホームページには Gnuwin32 ユーティリティが同梱されていると書かれていますが、実際に Gnuwin32 grep を使用するための設定作業はユーザーに任されているようです。

同梱の Gnuwin32 grep または cygwin grep を使用するように設定するにはどうすればよいですか? どちらも大丈夫ですか?

4

5 に答える 5

5

この記事には、これを機能させるためのヒントがいくつかあります。

私は先日これを機能させました。emacs内でPATH環境変数を設定できます。cygwinやgnuw32がインストールされている場合は、それらへのパスを設定するだけです。これは私の.emacsからのスニペットで、Windowsにのみ適用できます。プログラムがインストールされているパスへの変数(cygwin-bin、gnu-bin)を設定しました。次に、それらへのパスを構築します。欠点の1つは、残りのパスが吹き飛ばされることです。これは今のところ問題ではありませんが、LISPを使いこなせば、おそらく何かを理解できるでしょう。とにかく、これが役立つことを願っています。

;;windows only stuff

(when (string-equal system-type "windows-nt")

(progn

(setq cygwin-bin "c:\\apps\\cygwin\\bin")

(setq gnu-bin "C:\\apps\\GnuWin32\\gnuwin32\\bin")

(setenv "PATH"

(concat cygwin-bin ";" gnu-bin ";"))

(setq exec-path

'(cygwin-bin gnu-bin)))) 

追加する必要があります。Windowsのパスの前にqnuwin32を配置することは危険な提案であるように思われるため、このソリューションに到達しました。マシン上の他のプログラムを台無しにするリスクがあります。したがって、これは適切な妥協案のように思われました。

于 2010-01-31T16:32:38.190 に答える
5

Windowsにはユーティリティが付属していませんgrep(実際にはユーティリティが付属していますがfindstr、まったく同じではありません)。そのため、Windows用のcygwinやunixutilsなどをインストールする必要があります。それらをインストールした後、ウィンドウがそれらを探す場所を認識できるように、それらをに追加する必要があります。これは、コマンドラインでコマンドを実行して発行するか、[マイコンピューター]アイコンを右クリックして表示されるいくつかの設定で行うことができます(ここでは環境変数のようなものと呼ばれます)。%PATH%cmd.exeset PATH=<your_path>;%PATH%

Windowsにはと呼ばれるユーティリティfindがあり、システム%PATH%にもあり、特定のコマンド(などM-x grep-find)が正しく機能しない可能性があるため、最初にunix-findを配置することが重要です%PATH%

于 2010-01-31T13:29:51.087 に答える
0

Cygwin(古いバージョン)を使用しています。Emacs の場合、ライブラリcygwin-mount.elsetup-cygwin.elをこの順序でロードして使用します。うまく動作します。

于 2011-08-21T22:38:11.957 に答える
0

これが機能するナンセンスな答えです:

http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/39cd9d63b07a9988#

楽しみ!

于 2010-02-27T10:14:39.960 に答える