タグ付けされた質問 「commands」

コマンドは、 `Mx`またはキーバインディングのいずれかを介してインタラクティブに呼び出すことができる関数です。

1
関数とコマンドの違いは何ですか?
ここに質問と回答を投稿するとき、人々は「機能」と「コマンド」という用語を同じ意味で使用することがあります。その他の場合、人々は2つの用語のうちの1つだけを使用して、特定のコードを議論します。彼らの投稿は通常他のトピックに焦点を合わせているため、ある用語を使用しているのに他の用語を使用していない理由を説明していません。そう: Q: Emacs Lispでは、関数とコマンドの違いは何ですか?

2
Perlの正規表現をインタラクティブにテストおよび使用するにはどうすればよいですか?
テキスト付きのバッファがあるとします。バッファーに対して正規表現(理想的にはPerlタイプ)をテストし、Emacsにその一致を強調表示させたいと思います。 たとえば、次の正規表現(ウィキペディアから取得): (?<=\.) {2,}(?=[A-Z]) 次のテキストで次のように一致します。 この正規表現は、特に、ピリオドの後(.)、大文字の前にある少なくとも2つのスペースに一致します。 Emacs はPerlの正規表現用のインタラクティブな正規表現マッチャーを提供しますか? 後者の答えがノーの場合: Perlの正規表現のネイティブサポートがEmacsで(一度も)考慮されなかった理由はありますか?(Unix / Linuxでよく知られている標準であることを考慮して) このようなPerl正規表現マッチャーの構築をどのように進めることができますか?(おそらく、Perlを内部で呼び出すか、Perlの正規表現をサポートされているバリアントに事前に変換しますか?)

1
アクティブなM-を回す!into M-&(a'ka emacsはbash Ctrl-Zに相当)
ときどきM-! some_command、コマンドが予想よりも長く実行され、emacsが長時間フリーズされたままになることがあります。だから、凍結したemacsをglみ、使用しないことで自分を蹴り、次回M-& some_command使用することを約束しますM-&。しかしM-!、何十年も私の筋肉の記憶にあります...そしてもちろんありますがCtrl-G、コマンドを中断して再実行することが好ましくない場合があります(おそらく、それはsthを中断する可能性があり、おそらくは再実行に費用がかかります...)。 シェルkonsoleでの同様の間違いは修正するのは簡単Ctrl-Zでbg、ジョブはバックグラウンドで実行されています。 emacsに同様のトリックがありますか?現在実行中のフォアグラウンド(同期)コマンドをバックグラウンド化(非同期)コマンドに変える方法はありますか? 注:default が不可能な場合M-!、私はM-!他の何かに再バインドする方法の提案を受け入れます(このトリック以外は機能的に同等です)。

1
関数をキーにバインドしたり、Mxで呼び出したりできないのはなぜですか?
関数を作成し、Mx経由で呼び出して、キーにバインドしたいと思います。これは私の機能です: (defun my-function () (message "This is a great function")) で呼び出そうとするとM-x my-function、エラーが発生します:[no match]ミニバッファで。 キーにバインドしようとすると(またはマウスクリック): (global-set-key (kbd "C-c a") 'my-function) 動作しているように見えますが、で呼び出すとC-c aエラーが発生します 間違ったタイプの引数:commandp、my-function 関数を使用できないのはなぜですか?

1
コードからコマンドを呼び出すときに「インタラクティブ」引数を使用する方法
私はtest単にユーザーからの入力を受け取り、それをエコーバックするというコマンドを持っています: (defun test (input) (interactive "MInput: ") (message "%s" input)) それを呼び出す別の関数を書きたいです。次は失敗します: (defun test-forward () (interactive) (test)) このエラーで test-forward: Wrong number of arguments: (lambda (input) (interactive "MInput: ") (message "%s" input)), 0 test1つの入力を取るため、これは理にかなっています。作るtestのはinput &optional簡単になりますtest-forwardリターンをnil何もせずに。これを行う正しい方法は何ですか?
12 elisp  commands 

2
キーボードショートカットで誤って実行したコマンドを見つける方法は?
特にキーボードショートカットを介して、ユーザーが最近実行したコマンドをemacsが保存する場所はありますか?そうでない場合、それらをどこかに保存するように指示することは可能ですか?誤って間違ったキーボードショートカットを入力してしまうことがあり、何をしたのかわかりません。元に戻しますが、これらの偶発的なショートカットを時々繰り返す傾向があり、正確に何を押したか、またはどのコマンドを実行したかを知る方法がわかりません。 キーにバインドされているコマンドを判別する方法を知っています。私の問題は、私が押したコマンドとキーのどちらも知らないことです。それらがどのような影響を与えたか、そして最近それを行ったという事実だけです。

2
実行される関数を確認する方法
Emacsの中で何かをすると、バッファ*Messages*を使用して、何が起こったのかを理解できます。ただし、その関数がミニバッファーのメッセージをエコーし​​ている場合のみです。次に*Messages*、エコーされたメッセージの記録を保持します。 実行されたすべてのコマンドがリストされているバッファがあったことを覚えています。しかし、Emacsのドキュメントではそれを見つけることができません。メッセージをまったくエコーしない機能も表示されました。 私が話している機能について誰かが知っていますか?


2
コンパイルコマンドをカスタマイズするにはどうすればよいですか?
私のプロジェクトの1つではmake package install、ビルド時にの代わりに実行する必要がありmakeます。最後に使用したコンパイルコマンドは記憶されていますがmake -k、emacsが起動するたびにリセットされます。M-x compileデフォルトにカスタマイズするにはどうすればよいmake package installですか?

3
地域の合計数
(長方形の領域ではなく)領域内のテキストが点在する一連の数値を合計するにはどうすればよいですか?たとえば、リージョンに次のテキストが含まれている場合: Widgets 234 Sprockets 44 Nubbins 12 Fork handles 4 4 Candles どういうわけか298を報告するコマンドを探しています(298 = 234 + 44 + 12 + 4 + 4)-メッセージエリアにエコーするか、バッファーに挿入することで推測します。 理想的には、整数と浮動小数点数の両方に対応します。

3
コマンドのデフォルトの動作とCuの動作を入れ替え
多くのEmacsコマンドは、1つ以上のC-u接頭辞を付けて呼び出されると、その動作を変更します。場合によっては、コマンドのデフォルトの動作は、プレフィックスを付けたときに得られる動作よりも私にとってはあまり役に立ちませんC-u。同時に、デフォルトの動作を完全に排除したくありません。 具体的な例を示すと、quit-windowコマンド(にバインドさqれているhelp-mode)は現在のウィンドウを終了し、デフォルトでそのウィンドウに表示されているバッファーを埋め込みます。呼び出されC-uたとき、代わりにバッファを殺します。コマンドで、デフォルトでバッファを強制終了し、C-uプレフィックスで呼び出されたときにバッファを埋めたいと思います。 Q: デフォルトの動作をプレフィックスに移動しながら、コマンドが C-u デフォルトでプレフィックス 付きで呼び出されたかのように動作するようにEmacsに指示するにはどうすればよいですか?C-u 元のコマンドを再定義するか、自分の好みに応じてプレフィックス引数を渡すカスタムコマンドにラップすることで、この問題に対処できることを知っています。しかし、私はむしろこのようなことをしたいと思います: (swap-args 'quit-window)

1
現在のコマンドのキー割り当てを取得する
this-command-keysthis-command-keys-vector現在のコマンドを実行したキーシーケンス全体を返します。ただし、このようなシーケンスにはプレフィックス引数も含まれます。関数や変数はありますか-それを呼び出しましょうthis-command-key-binding-接頭辞なしでコマンドのキーシーケンスのみを取得して、接頭引数が存在する場合でも(key-binding (this-command-binding))と同じ値を返しthis-commandますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.