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

emacsclientは、ユーザーがEmacsサーバーに接続できるようにするプログラムです。EmacsをUnixライクなシステムのデフォルトエディタとして使用する場合に便利です。これにより、新しいプロセスを作成せずにEmacsを呼び出すことができ、共有バッファとコマンド履歴を再利用できます。

2
Emacsが呼び出すプログラムからemacsclientを呼び出す
AucTexでPDFドキュメントファイルを表示するときに問題が発生しました。私はpdf-toolsEmacs内からPDFファイルを表示するために使用しemacsclient -n、デフォルトのpdf-viewerとして設定しました(Debian Linuxのxdg-mimeを介して)。これはほとんどの状況(Tex-documentation-texdoc ...)で正常に機能しますが、Auctex(C-c ?)の機能を壊します。 問題を1行のコードに絞り込みました。listingsパッケージのドキュメントを表示しようとすると、TeX-documentation-texdocこれが次のsexpに変わります。 (shell-command-to-string "texdoc --view listings") texdoc次にemacsclient、実際にファイルを開くための呼び出し(xdgを介してデスクトップを構成した方法に基づく)。ただし、この時点でEmacsがハングし、C-g制御を戻すために()を終了する必要があります。その後、新しいPDFは開かれません。emacsclientを直接呼び出そうとすると、同じことが起こります。 (shell-command-to-string "emacsclient -n tmp.pdf") どちらのコマンドもコマンドラインで機能します(つまり、emacsclient -n tmp.pdfおよび)texdoc --view listings。 私の質問は、このような場合、Emacs内からどのようにemacsclientを呼び出すのですか?(そして、私はでPDFファイルを開くことができることを知っていfind-fileます。ファイルを見つけるために外部プロセス(texdoc)を呼び出す必要があり、そのプロセスがemacsclientを呼び出すため、ここではオプションではありません)。

2
Emacsはシャットダウン前に現在のセッションで開かれた最近訪れたファイルの履歴を保存できません
Systemdを使用してデーモンとして起動したemacsに問題があります。 emacsデーモンサービスを手動で停止しない場合、シャットダウン/再起動するたびに、現在のセッションで最近開いたファイルの履歴が失われます。これは、シャットダウン状態のときにSystemdがEmacsを適切に強制終了できないためだと思います。 この問題を解決するにはどうすればよいですか? init.elの最近の設定: (use-package recentf :config (progn (setq recentf-auto-cleanup 'never recentf-max-menu-items 50 recentf-max-saved-items 400 recentf-save-file (expand-file-name "temp/.recentf" user-emacs-directory)) (recentf-mode t))) Systemd emacsサービス構成: [Unit] Description=Emacs: the extensible, self-documenting text editor [Service] Type=forking ExecStart=/usr/bin/emacs --daemon ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)" Restart=always User=%i #WorkingDirectory=%h [Install] WantedBy=multi-user.target

2
emacsの--no-waitと同等
emacsclientプログラムは、フラグができます--no-wait(と略す-nemacsのサーバーが指定されたファイルを訪問し、すぐに返すために発生します)。 emacsclient -n ~/.bashrc 代替エディターを提供した場合、Emacsサーバーが実行されていない場合でも機能します emacsclient -n -a "/usr/local/bin/emacs" ~/.bashrc ただし、サーバーが実行されている場合は、この呼び出しがすぐに返されるため、これにより一貫性のない動作が発生します。サーバーが実行されておらず、代替エディターが使用されている場合、呼び出しはブロッキング呼び出しになり、Emacsを終了するまで戻りません。 emacs(とは対照的にemacsclient)新しいフレームを作成してから戻るように指示する方法はありますか?

1
emacsclientが毎回新しいフレームを開始するのを防ぐ方法は?
Emacs 24.3でUbuntu 12.04を実行しています。コンピューターの起動時にemacs --daemonが実行され、execパラメーターとしてemacs24.desktop受け取るemacsclient -c -a ""ように変更しました。ただし、ファイルを開こうとすると、常に新しいフレームが開きます。 ファイルを既存のフレームに新しいバッファーとして表示する方法はありますか? 「ファイルを開く」私はどちらかのGUIのファイルマネージャを使用したりすることにより、端末使用を意味するemacsclient -nc [filename]かをemacsclient -nc -a "" [file]。 編集:起こっているように見えるのは、emacsがすべてのファイルで(Emacsフレームのように)新しい「OSウィンドウ」を開いていることです。ただし、同じemacsフレーム内のすべてのバッファーにアクセスできます。それでも、切り替える必要がないにもかかわらず、複数のemacsフレームがイライラすることがあります。フレームを手動で閉じると、バッファも削除されます。 毎回新しいフレームを開く動作を抑制する方法はありますか?

2
emacsclientはリモートemacsサーバーにアクセスします
リモートホストからemacsclientセッションを開こうとしています。trampのWebサイトで次の手順を実行しました。TRAMPを使用してリモートEmacsセッションに接続するにはどうすればよいですか。 ステップを説明します リモートホスト上に.emacsファイルを配置 (require 'server) (setq server-host "<IP ADDRESS of remoteHost>" server-use-tcp t) (server-start) リモートホストでemacsセッションを開始する 〜/ emacs.d / server / serverをremoteHostからlocalHostにコピーし、同じパスを維持します。(localHost:〜/ emacs.d / server / server) ローカルホストのemacsシェル emacsclient /ssh:test@remoteHost:/tmp/test.py しかし、私のlocalHostで次のエラーが発生しました ;; emacsclient: can't find socket; have you started the server? ;; To start the server in Emacs, type "M-x server-start". …

2
emacsclientを使用して接続できない
私は使用してemacsサーバーを起動しています systemctl --now --user enable emacs 実行すると、そのサーバーは実行中です systemctl --user status emacs わかった $ systemctl --user status emacs ● emacs.service - Emacs text editor Loaded: loaded (/usr/local/lib/systemd/user/emacs.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-06-09 09:27:56 CDT; 2 days ago Docs: info:emacs man:emacs(1) https://gnu.org/software/emacs/ Main PID: 17613 (emacs) CGroup: …

2
それぞれ独自のサーバーを持つ複数のEmacsインスタンス?
私のセットアップでは、ローカルマシンで複数の(GNU)Emacsインスタンスを同時に実行しています。現在取り組んでいるプロジェクトまたはタスクごとに1つです。 すでに実行中のEmacsインスタンスで、たとえば次のようなコマンドでバッファを開けるようにしたい $ emacs file.txt これに対する通常推奨される解決策は、Emacsをサーバーモードで実行することです。ただし、デフォルトでは常に1つのemacsclientしかアクティブにできないことを理解しているため、これは複数のEmacsインスタンスの使用と競合します。 既存の(おそらく複数の)Emacsインスタンスでバッファーとしてファイルを開くにはどうすればよいですか?最後の目標は、現在のワークスペース(Compiz)にあるEmacsインスタンスでファイルを開くか、そのようなインスタンスがまだ存在しない場合は作成することです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.