WindowsタスクバーからEmacsを実行する


8

Windowsでプログラムを切り替えるには、通常、Windowsキーと数字キーを使用して、タスクバーからプログラムを実行します。ほとんどのプログラムは実行を開始するか、すでにインスタンスがある場合は、それをフォアグラウンドに移動してそれに焦点を当てます。ただし、Emacs(runemacs.exeで始まる)はタスクバーに新しいエントリを作成し、ショートカットを再度使用すると、新しいインスタンスが作成されます。私の知る限り、Emacsコマンドを使用して異なるフレームを切り替えることすらできません(Cx 5 oを試しました)。

それを行う方法はありますか?ウィンドウホットキーの以降の使用はEmacsの既存のインスタンスを使用するだけであり、そうでない場合、少なくとも異なるフレーム間を簡単に移動できるようにすることができますか?私はこのスニペットを試しました:

(require 'server)
(unless (server-running-p)
  (start-server)) 

この質問の答えからですが、違いはありませんでした。


参照しているスニペットを指定できますか?
nispio 2014年

このスニペットは、Emacsが初めて実行されるときに編集サーバーが作成されることを確認します。同じ編集サーバーに接続することを希望するEmacsへの後続の呼び出しは使用する必要がありますemacsclientw.exe
nispio

@nispioああ、それはそれが機能しなかった理由を説明しています。異なる実行可能ファイルから実行する必要なしに、すべてを同じ編集サーバーで実行する方法はありますか?
レスマン

この答えはおそらく機能します:emacs.stackexchange.com/a/158/93runemacs.exe代替エディターとして提供すると、emacsclientw.exe編集サーバーが実行されていない場合でも呼び出すことができます。
nispio 2014年

1
新しいフレームの作成を回避する方法については、nispioの回答に対する私のコメントを参照してください。
Vamsi 2014年

回答:


5

これをinitファイルに追加して、emacsの起動時に編集サーバーが作成されるようにします

(require 'server)
(unless (server-running-p)
  (server-start)) 

次に、Windowsショートカットemacsclientw.exeを次のように指定します。

C:\path\to\emacsclientw.exe -n -e "(raise-frame)" -a "C:\path\to\runemacs.exe"

これは、既存のEmacsフレーム(存在する場合)に焦点を当てるか、runemacs.exeそうでなければ呼び出します。(コマンドパラメーターの調整について助けてくれたVamsiに感謝します)


これは、実行するファイルを渡した場合の動作ですが、コマンドをそのまま使用すると、「ファイル名または引数が必要です」というエラーが表示されます。
Resueman 2014年

@resueman -cフラグはその問題を解決しますか?
nispio 2014年

2
@nispioを使用C:\path\to\emacsclientw.exe -n -e "(raise-frame)" -a "C:\path\to\runemacs.exe"して、新しいフレームの作成を回避し、前のフレームを上げることができます。
Vamsi 2014年

@Vamsiがありませんが-c、ファイルへのアクセスも期待されますか?(あなたが私が今Windowsマシンにいないと言えない場合。)
nispio '16年

@Vamsiそれは完璧に動作します。@nispio -cは、-e式がある限り問題なく動作するようです。
Resueman 2014年

7

今日、SuperUserの問題に対する別の答えを見つけました。それはもっとハッキリに見えますが、結果はWindows上の他のプログラムとより一貫しています。

  1. タスクバーに既存のアイコンなしでrunemacs.exeを実行します。
  2. タスクバーで実行中のEmacsアイコンを右クリックし、「このプログラムをタスクバーに固定する」をクリックします。
  3. Emacsを閉じる
  4. タスクバーの固定されたEmacsアイコンを右クリックして右クリックし、[プロパティ]をクリックして、ターゲットをemacs.exeからrunemacs.exeに変更します。

1
FWIW、それが私がすることです。あなたの質問から、それがあなたが望んでいたことを理解できませんでした。とりわけemacsclientを使用したいと思っていました。ところで、ディレクトリをProperties設定して、Start inEmacsを特定のファイルまたはディレクトリで開くこともできます。(Start inディレクトリのDiredでEmacsを起動します"。IOW 、同じdir(-quoted)を引数としてに渡しますrunemacs。)
Drew

@Drewたぶん、私が何を望んでいるのかよく説明しなかった。私はまだ十分に新しいので、すべてをまっすぐに保つのは難しいです。ヒントをありがとう。
Resueman、2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.