2021年4月18日日曜日

[emacs][cygwin] Visual Studioのemacs / emacsclient 連携設定

Visual Studioの外部ツール機能を利用して、Visual Studioで開いているファイルをショートカットキー一発で(orメニューから)emacs/emacsclientで開くことができる設定を紹介します。カーソル位置がemacsに引き継がれるのが地味に便利です。職場の都合などでビルド環境がVisual Studioだが、ビルド以外の作業は使い慣れたemacsを利用したい、という方にお勧めです。

今の時代になぜWSLでなくcygwinなのか?という疑問をもたれる方がいると思いますが、このエントリはWSLがリリース前にメモを作って、ずっと公開しないまま眠っていたものです。せっかくの情報なので時代遅れを承知の上公開します。

 

前提:

"C:\cygwin64"以下にcygwinをインストールし、cygwin上でemacs/emacsclientを利用している、自分の環境を前提に設定を紹介します。cygwinのインストールディレクトリ、及び、NTEmacs、gnupackなど異なる環境のemacsを利用している方は適宜ディレクトリやexeのパス設定を変更して下さい。

設定:

メニューの「ツール」-「外部ツール」にemacs/emacsclientを登録する。
  • emacsを起動するための設定
    • Title: emacs
    • Command: C:\cygwin64\bin\run.exe
    • Arguments: /usr/bin/emacs +$(CurLine):$(CurCol) $(ItemFileName)$(ItemExt) \+$(CurLine):$(CurCol)
    • Initial directory: $(ItemDir)
  • emacsclientを起動するための設定
    • Title: emacsclient
    • Command: C:\cygwin64\bin\run.exe
    • Arguments: /usr/bin/emacsclient +$(CurLine):$(CurCol) $(ItemFileName)$(ItemExt) \+$(CurLine):$(CurCol)
    • Initial directory: $(ItemDir)

  • (2021.04.18追記)cygwinのアップデートにより(?)、Argumentのコマンドをemacsclientからemacsclient-X11に変更しない起動できない状態になった。
    • Arguments: /usr/bin/emacsclient-X11 +$(CurLine):$(CurCol) $(ItemFileName)$(ItemExt)


余談:

この設定はTortoiseSVNのVisualStudio連携設定ページの情報を参照したときに、emacsも同じように設定できるのでは、と思いついたものです。emacs, svnに限らずいろいろと使い道がありそうです。
話がそれますが、Windows上の全てのキー操作をemacsのキーバインドに変更する方法を、以下のエントリで紹介しています。emacs使いの方にとっては便利な設定なのでこちらも是非参照してみてください。
  • [windows][emacs] Windows 8.1上で(特定ユーザーログイン時に)任意のアプリの操作をemacsキーバインドにする方法


  • 参考: