誤って「snake-case」を検索したときに、「snake_case」を自動的に一致させるにはどうすればよいですか?


8

クイックを行うときに、「_」を「-」と誤って入力することがよくありisearch-forwardます。

たとえば、私が探していてsnake_case、誤って入力C-s snake-caseしても結果が得られません。最良の場合はすぐに気付くので、検索語をあまり削除する必要はありません。最悪の場合、基本的にもう一度入力する必要があります。

isearch-forwardクエリをisearch-forward-regexpライクに変更するためにフックする方法はありますsnake[-_]caseか?

lisp-case「-」を「_」に変更するだけで解決するよりも多くの問題が発生するほど頻繁に検索する必要があります。


6
全体をもう一度入力する必要はありません。やるM-eインクリメンタルサーチがアクティブである間に、編集にミニバッファに検索文字列をジャンプします。その後C-e M-b BKSPC _C-s検索を続行します。
Kaushal Modi

より近代的であいまいな一致する検索 'engine'を使用することで、「sc」と入力し、snake-case、SnakeCase、snake_caseをすべて一致させます(たとえば、idoをflxなどと一緒に使用します)
Tom

@TomRegnerどのように「フレックス」検索を行うのisearchですか?
Kaushal Modi

@kaushalmodi bitbucket.org/jpkotta/flex-isearchでできるかもしれません
Tom

回答:


8

そのような自動化された動作が、それがあなたが望んでたことではないときにあなたに痛みを引き起こさないことは想像できません。

私の心にM-eは、kaushalmodiの推奨が最良の答えです。問題を簡単に修正できるようにすることは、isearchにあなたの心を読ませることよりも望ましいようです。

isearchは、検索が失敗した最初の文字を書き留めてM-e、カーソルをその位置に自動的に配置するのに十分なほど賢く、後続の文字を続けて入力した場合でも、パターンを修正して検索を再開するための一般的なキーシーケンスであることに注意してください。ただ:

M-eC-d_C-s


すごい!TIL:isearchは、検索が失敗した最初の文字を書き留めるほど賢くM-e、カーソルをその位置に自動的に配置します
Kaushal Modi

私は知らなかったM-e、それは確かに物事をより簡単にする、特にそれはタイプミスに戻るので。
トム

5

スワイパーを使用してを検索するとsnake case、との両方に一致snake_casesnake-caseます。

swiperisearch検索時にミニバッファーの概要を表示する新しい選択肢です。

swiper.png

上の画像では、入力はivy mregexに変換されivy.*mます。この正規表現には36件の一致があります。C-s/ C-r またはC-n/でそれらの間を移動できC-pます。

あなたは、インストールすることができますswiperM-x package-install。MELPAとGNU ELPAの両方で利用できます。


swiper(およびswiper-helm)はきれいです。それらをセットアップに追加し、数日間試してみました。私が探していたものとは異なるものを入力する必要があるので、私が何をしていたかはわかりませんが、それに慣れるかどうかを確認します。また、スワイパーモードでCwとMeを動作させる方法はありますか?
トム

何をしC-w、何をM-eすべきか?何か追加したい場合は、github.com / abo-abo / swiper / issuesに投稿してください。
abo-abo 2015

私はコメントと他の答えで説明されています-それはミニバッファーで検索を編集します。Cwは、カーソルの下にある記号で検索語を展開します。
トム

OK、M-eスワイパーは必要ありませんM-e。すでににあります。そして、その時点で物事を取得するには、を押しM-nます。まだ拡張する方法はありませんが、入力を続けることができます。
abo-abo 2015

Mnは私が求めていたものです。Meの便利な機能は、最初の一致しない文字にポイントを移動することですが、あいまい一致でもそれが実用的かどうかはわかりません。
トム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.