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

フックはEmacsをカスタマイズするための重要なメカニズムです。フックは、関数のリストを保持するLisp変数であり、明確に定義された場合に呼び出されます。

1
バッファ変更状態にフックする方法は?
mode-line-modifiedバッファが変更された場合にモード行にアスタリスクを表示する組み込み変数など。 具体的にhl-line-modeは、バッファーが変更されている場合はオフに、変更されていない場合はオンにしたいと思います。 「フックの変更」に関するドキュメントを読みましたがhl-line-mode、モードラインのアスタリスクのように変更を取り消すときに切り替えたいのですが。

2
すべての読み取り専用バッファに対して実行されるフックはありますか
show-trailing-whitespace編集可能なファイルを有効にしshow-trailing-whitespace、読み取り専用ファイルを無効にしたい。私はもう試した (defun my/read-only-whitespace () (setq-local show-trailing-whitespace (not buffer-read-only))) (setq-default show-trailing-whitespace t) (add-hook 'read-only-mode-hook #'my/read-only-whitespace) しかし、これは私がread-only-mode手動で有効にした場合にのみ機能するようです。自動的に読み取り専用になるバッファー(読み取り専用ファイルなど)を開くと、フックが実行されません。 すべての読み取り専用バッファに対して実行されるフックはありますか?

2
「最初のキーを押しながらフック」のようなものを探しています
Emacsセッションを実行していて、たとえば20分間コンピューターから離れたとします。Emacsセッションに戻ったら、ある時点で、Emacsウィンドウにフォーカスがある間に何らかのキーを押します。これは、私がfirst-keypress-in-a-while 1と呼んでいる種類のイベントの例です。 このようなイベントが発生したときにEmacsが自動的にコードを実行する方法を探しています。IOW、私は何かのようなものを探していfirst-keypress-in-a-while-hookます。 Emacsの標準的なフックを調べても、すぐに良い候補を特定することはできませんが、この仕事を実行できる明白でないものがあるかもしれません。 あるいは、そのようなフックの機能をシミュレート/近似できる他の方法はありますか? 1もちろん、in-a-while最小時間間隔、たとえば15分に対応するユーザー設定可能なパラメーターを指します。私が興味を持っているイベントは、この間隔より長い非アクティブな期間の後の最初のキーを押すことです。「非アクティブ」とは、Emacsがユーザー操作を検出しない状態を意味します。つまり、キーを押したり、マウスをクリックしたりしないなどです。


2
ediffによって開かれた組織ファイルの折りたたみを防止
ediffを使用して2つの組織ファイルをマージすると、折りたたみが邪魔になるため、ediffによって作成された組織モードバッファーですべての折りたたみを無効にしようとしています。diff以外の折りたたみ動作は影響を受けません。 単純に私は次のようなものがうまくいくはずだと思います: (add-hook 'ediff-mode-hook (lambda () (set (make-local-variable 'org-inhibit-startup-visibility-stuff) t))) これが(org-startup-foldedまたはではなくorg-agenda-inhibit-startup)変更する組織変数であると私はかなり確信しています。 私は無駄に様々なフックを試してみた(主にediff-mode-hook、ediff-before-setup-hook、ediff-meta-mode-hook、およびediff-prepare-buffer-hook-遅すぎおそらくある)インターン変数が継承されることを期待して。 make-local-variableを誤って使用している可能性は十分にあります。パターンは、私が広く見たものから借りたものです。 値をグローバルに設定することのみが効果的でした(しかし、それは私が狙っているものではありません)。アドバイスメカニズムを(ab)使用する必要がありますか?

3
特定のディレクトリ内のすべてのファイルに対して実行するフックを作成する良い方法は何ですか?
指定したディレクトリにあるファイルを開いたときに実行する関数を割り当てる良い方法は何ですか?フックと同じですが、メジャーモードではなくファイルの場所に基づいています。 ディレクトリに特別なファイルを置くことでこれを有効にできればいいのですが、中央の構成ファイルにフックを追加するのも良いでしょう。
7 hooks 

2
スクロールによってカーソルが移動したことを示すフック
この質問に触発されました:Emacsにカーソルを画面外に移動させます。スクロール操作の影響を受けない固定位置にカーソルを維持するマイナーモードを書くことを検討しています。私はこれをどのように実装するかについていくつかのアイデアを持っていますが、カーソルが画面から「押し出された」ときに通知するためのフックが必要になります。 Emacsの腸のどこかに、の位置がpointディスプレイから移動されたときに呼び出されるコードが存在します。一方で言われているコントロールのこの動作は、深いCのソースコードと一緒に住んでいることのコードは、私はそれが起こるとしているときに、私は通知できることをどのような方法があるかどうかを知りたいということ。 スクロールコマンドがカーソルを移動しようとしているときに通知を受ける方法はありますか? または、少なくとも、ディスプレイがスクロールされようとしているときに通知を受ける方法はありますか? アップデート:私は、新しいパッケージがばかりにリリースされましたので、これは達成するために、マイナーモードを書くことにもはや計画を午前GNU ELPAと呼ばれるscroll-restoreそれは、私は自分自身を実装することを考えていたことが正確に機能を提供します!
7 elisp  window  hooks  scrolling  c 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.