6

私は長い間Emacsユーザーですが、2年前に部分的にMacVimに切り替えて、すべてのプログラミング作業に使用しています(他の作業にもEmacsを使用しています)。私は今、主に素晴らしいという理由でEmacsに戻ることにしましたevil-mode。私は非常に満足していますが、VimCommand -Tプラグインほど優れたシンプルなものはまだ見つかりません。

Emacsの代替案の主な問題は、それらが複雑すぎるか遅いことです。

Command-Tに最も近いのはhelm/helm-cmd-tですが、そのようには機能しません。

2つのパスがあるとしましょう:

  • app/controllers/admin/feedback_controller.rb
  • app/controllers/fee_controller.rb

VimのCommand-Tでは、次のように書くことができます。

app/controllers/fe

そして、それは両方のパスに一致します。

helm-cmd-t、と書くapp/controllers/feeと、にしか一致しませんfee_controller。両方を一致させたい場合は、のように正規表現を使用する必要があります。app/controllers/.*これはそれほど悪くはありませんが、より多くのキーストロークが必要です

どんな提案もありがたいです!

4

8 に答える 8

3

idoを使用するEmacsパッケージは、ido-flex-matchnil以外であれば、これを行うことができます。Helm-cmd-tは、この種の柔軟なマッチングを意図的にサポートしていません

に設定されたfind-file-in-repositoryを使用して、説明した動作を取得できます。ido-flex-match't

于 2013-03-26T12:16:30.027 に答える
3

私は最近flxwithido-modeを使い始めましprojectileたが、非常に優れたランク付けされたあいまい一致があり、VimのCtrlPおよびCmdTと非常によく似ています。

MELPA経由でインストールできます。

M-x package-install
flx

詳細については、flxプロジェクトを参照してください。

これが説明のためのスクリーングラブです...

flxあいまいマッチング

于 2014-05-01T01:22:59.927 に答える
2

これがありますが、最初にヘルムをインストールする必要があります:https ://github.com/emacs-helm/helm-cmd-t

編集:私のヘルムガイドを参照してください。なぜそれが強力なのかを読んでください。そのセクションの実際の動作を参照helmしてくださいprojectile

VimのIdo+flxなどのファジーサーチャーでは、順番に入力する必要があります。Helmを使用すると、順不同のマッチングを実行できます。「main.cx86」または「x86main.c」のどちらを入力しても、どちらのクエリでも同じ結果セットが得られるため、順不同で呼び出しました。しかし、それをマルチステップ検索と呼ぶことも理にかなっています。検索文字列(実際には正規表現である「パターン」と呼ばれる)を整然と入力しなくても、Helmは私に大きな自由を与えてくれます。複雑なパスを覚えていなくても、最初に頭に浮かんだものを入力できます。欲しいターゲットからの候補が多い場合は、さらに詳細(パターン)で絞り込みます。

上記の利点から2つのケースを説明する上記の例:

  • 私の欲求ターゲットが一意でない場合は、さらに絞り込むことができます。
  • 私の欲望のターゲットがユニークであれば、私はすぐにそれを得ることができます。

ご覧のとおり、Linuxカーネルのソースツリーには40k以上のファイルが含まれているので、すぐにいくつかのファイルに絞り込みました。

Visual Studioもプロジェクト検索でこのメカニズムを実装していますが、Helmのように一般的ではありません。Helmでは、同じHelmインターフェースを他の多くのことに再利用できます。たとえば、を参照してくださいhelm-semantic-or-imenu。アウトラインツリーのようなものがありますが、いくつかの単純なパターンを使用して、インタラクティブかつ段階的に必要な候補に絞り込むことができます。

最後に、flx著者のfyi(Le Wang)はHelmを使用しています。

于 2014-04-28T04:39:42.477 に答える
1

LustyExplorerを試しましたか?同じ名前のVimプラグインに基づいています。

また、Command-Tを最大限に活用していないようacfeです。これら2つのファイルを照合するには十分なはずです。あなたがすることは特に良くはありません:e app/con*/**/fe<Tab>

于 2013-03-26T07:47:22.737 に答える
1

私はかつて、 Idoや他の「ネイティブ」elispパッケージに対する利点の1つとして速度を宣伝しているgpickerに出くわしました。実際のプロジェクトで試してみる必要はありませんが、うまくいくかもしれません。

于 2013-03-26T11:18:27.610 に答える
1

簡単に言えば、Emacs用のcommand-Tのようなものはありません。最適なオプションはgpickerまたはPeepcodeのpeepopenですが、これらは外部アプリケーションであり、command-Tを長時間使用した後は気が散ることがあります。今のところ、command-Tのためだけに、MacVimに固執しますが、演習としてcommand-Tと同じように動作するものを実装することを検討するかもしれません。

回答とコメントありがとうございます!

于 2013-03-31T22:23:09.530 に答える
0

textmate.elを試してみてください: )https://github.com/defunkt/textmate.el

「Ctrl+P」の代わりに「Command+T」を使用する必要があります:)

于 2015-05-01T19:34:26.030 に答える
0

https://github.com/bling/fzf.el

これは私の意見ではそこにある最良の解決策です。理由は次のとおりです。

  1. プロジェクト内にいる場合は、発射体を使用してプロジェクトルートを決定します。
  2. それ以外の場合は、現在のディレクトリ内のファイルに非常にすばやくインデックスを付けます。
  3. あいまいマッチング。
  4. カスタマイズ可能(上または下の配置、レコード数など)
于 2016-09-29T14:42:24.380 に答える