文脈上、私はemacs初心者のようなものです。私はそれを長い間使用していませんでしたが、ますます使用しています(私はそれがとても好きです). また、私は Lisp には慣れていますが、elisp にはあまり詳しくありません。
この特定の正規表現を頻繁に使用するため、正規表現をキーボードの組み合わせにバインドする必要があります。
私がやってきたこと:
M-C-s ^.*Table\(\(.*\n\)*?GO\)
上記では改行を使用しましたが、正規表現の を の結果にisearch-forward-regexp
置き換える必要があることがわかりました。これにより、(コマンドを終了せずに)リテラルの改行が挿入され、式に改行を挿入して行間で一致させることができます。\n
C-q Q-j
これをキーの組み合わせにバインドするにはどうすればよいですか?
式で実行される elisp 関数を作成する必要があることは漠然と理解していますがisearch-forward-regexp
、詳細についてはあいまいです。Google で検索したところ、ほとんどのドキュメントが少しわかりにくいことがわかりました。
emacsで正規表現をキーの組み合わせにバインドするにはどうすればよいですか?
マイク・ストーンはこれまでのところ最高の答えを持っていました.
編集-この種の機能はありましたが、マクロを保存した後、後で使用するために戻ったときに、C-x e. (つまり、emacs を再起動して を入力してから を入力するM-x macro-nameと、ミニバッファーC-x eに「最後の kbd マクロがありません」などのメッセージが表示されます)
@Mike Stone - 情報をありがとう。私は次のようなマクロを作成しようとしました:
C-x( M-C-s ^.*Table\(\(.*C-q C-J\)*?GO\) C-x)
これでマクロが作成されましたが、マクロを実行すると、 を使用したときに通常得られるのと同じハイライトが得られませんでしたisearch-forward-regexp
。代わりに、式の次の一致の最後にジャンプしました。だから、それは私が必要とするものには実際には機能しません。何か案は?
編集:マクロを使用してやりたいことを実行できるisearch-forward-regexp
ようです。あなたが提案したことを試してみます。