Emacs を起動すると、init.el (または .emacs.el) が評価されます。ただし、emacsclient を開始するときは、同様の Lisp コードは評価されません。
新しいemacsclientを開くたびにlispファイルを評価するにはどうすればよいですか?
(これは、フレーム固有のカスタマイズに便利です。)
答えはフックを使用することだと思いますが、使用する正しいフックが見つからないようです。
あなたの答えを楽しみにしています。
Emacs を起動すると、init.el (または .emacs.el) が評価されます。ただし、emacsclient を開始するときは、同様の Lisp コードは評価されません。
新しいemacsclientを開くたびにlispファイルを評価するにはどうすればよいですか?
(これは、フレーム固有のカスタマイズに便利です。)
答えはフックを使用することだと思いますが、使用する正しいフックが見つからないようです。
あなたの答えを楽しみにしています。
'server-visit-hook
サーバーが呼び出されるたびに ( を呼び出すたびに) 実行される関数を hook に追加できますemacsclient
。
次のコードを使用して、サーバー バッファーの動作を自動的に変更します。特に 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)))
本当に新しいフレームのカスタマイズが必要な場合は、1つの引数(新しいフレーム)を取るcreate-frame-hookがあります...
gnuclientを意味する場合は、コマンドラインオプション「-eval」を使用して何かを評価できます(その後、エイリアスを作成して常にカスタマイズを評価できます)。
@LSW:
試してみてください'window-setup-hook
。これは、emacsclient がファイルを渡されなくても呼び出されるため、煩わしさに対処します。