4

Windows 7 64 ビットにackをインストールした後(たとえばStrawberryPerlを使用)、 Windows のcmdターミナルからackを実行できます。

ただし、Emacs のシェル モード (つまり、バッファー) でackを使用しようとすると、出力が得られません (ただし、他のすべてのcmdコマンドは正しく出力されます)。M-x shell

興味深いことに、ackを単独で (つまり、引数なしで) 実行すると、ackの使用情報が正しく出力されます。つまり、ackは、引数を指定して実行すると、Emacs シェルに出力を出力しません ( cmdで確認したように、 ackはクエリのヒットを出力するはずですが)。

出力がないので、ack が入力を待っているように思えます (ただし、引数を指定します)。ここで提案されているコード スニペットを.emacs ファイルで試してみましたが (ファイル システムと STDIN のどちらで検索するかが混乱している場合に ack を支援するように設計されているようです)、問題は解決しません。

これを修正する方法について何か提案はありますか?

ありがとう

4

2 に答える 2

2

ackは stdin で待機しており、フィルター モードであると誤って認識しています。回避策として、コマンドの最後に を追加<NULして、stdin を閉じます。

参考までに - Windows のemacsシェル内で perl デバッガーで「ack」を実行すると、ここで停止することが示されます。

main::print_matches_in_resource(c:/Strawberry/perl/site/bin/ack:454):
454:            while ( <$fh> ) {
于 2016-01-21T03:12:10.023 に答える
1

ack.elをチェックしましたか?

これは私が Windows 7 で使用しているものです。ack の使用が簡単になります。デフォルトでは、ポイントで単語を検索することを提案します。また、コンパイルを介して出力を取得するため、一致を含むファイルと行に簡単にジャンプできます。

于 2011-07-18T05:08:36.570 に答える