15

Emacs を起動すると、init.el (または .emacs.el) が評価されます。ただし、emacsclient を開始するときは、同様の Lisp コードは評価されません。

新しいemacsclientを開くたびにlispファイルを評価するにはどうすればよいですか?

(これは、フレーム固有のカスタマイズに便利です。)

答えはフックを使用することだと思いますが、使用する正しいフックが見つからないようです。

あなたの答えを楽しみにしています。

4

4 に答える 4

16

'server-visit-hookサーバーが呼び出されるたびに ( を呼び出すたびに) 実行される関数を hook に追加できますemacsclient

于 2009-06-24T18:46:17.717 に答える
7

次のコードを使用して、サーバー バッファーの動作を自動的に変更します。特に Firefox の拡張機能It's All Textで使用します。その拡張子では、バッファーはドメイン名に従って名前が付けられているため、 を使用string-matchしてファイルの名前を照合することで、適用するルールを把握できます。

(defun server-edit-presets ()
  (cond
   ;; When editing mail, set the goal-column to 72.
   ((string-match "mail\\.google\\.com\\.[0-9a-z]+\\.txt" (buffer-name))
    (longlines-mode-off)
    (auto-fill-mode 1)
    (set-fill-column 72)
    (save-excursion
      ;; Don't know if this is necessary, but it seems to help.
      (set-buffer (buffer-name))
      (goto-char (point-min))
      ;; Replace non-breaking strange space characters
      (while (search-forward (char-to-string 160) nil t)
        (replace-match " "))))))

(add-hook 'server-visit-hook 'server-edit-presets)
(add-hook 'server-visit-hook '(lambda () (longlines-mode 1)))
于 2009-06-25T00:15:19.440 に答える
5

本当に新しいフレームのカスタマイズが必要な場合は、1つの引数(新しいフレーム)を取るcreate-frame-hookがあります...

gnuclientを意味する場合は、コマンドラインオプション「-eval」を使用して何かを評価できます(その後、エイリアスを作成して常にカスタマイズを評価できます)。

于 2009-06-24T18:43:24.850 に答える
1

@LSW:

試してみてください'window-setup-hook。これは、emacsclient がファイルを渡されなくても呼び出されるため、煩わしさに対処します。

于 2015-07-01T19:23:28.057 に答える