emacs で指定したファイルを eclipse で開くための設定

■ Windows版 emacs 共通の設定


【お知らせ】


<2015/05/17 追記>
Cygwin版 emacs でも動作するように対応しました。

【本題】


emacs で指定したファイルを eclipse で開くための設定です。
(require 'dired)
(require 'cc-mode)

(defvar eclipse-home "/c/usr/local/eclipse_4.4")

(defun eclipse-open (filename)
  (message "%s" (concat "cygstart eclipse " filename))
  
  (let ((default-directory (expand-file-name "./" eclipse-home)))
    (shell-command-to-string
     (concat "cygstart eclipse "
             (shell-quote-argument
              (if (fboundp 'cygwin-convert-file-name-to-windows)
                  (cygwin-convert-file-name-to-windows filename)
                filename))))))

(define-key dired-mode-map (kbd "C-c e") 
  (lambda ()
    (interactive)
    (eclipse-open (dired-get-filename nil t))))

(define-key java-mode-map (kbd "C-c e")
  (lambda ()
    (interactive)
    (eclipse-open buffer-file-name)))

eclipse-home 変数、バインドキーの設定は適宜変更してください。

上記の設定をすると、dired や java-mode で C-e を押下することで、対象のファイルを eclipse で開くことができます。
また、「Windows の操作を emacs のキーバインドで行うための設定 (Keyhac版)」と併用すると、eclipse に移動した後、C-x o で emacs に戻ることができ便利です。
(C-x o の設定は、Windows 8 以降では動作しなくなりました。また、Windows 7 の場合でも、Keyhac の設定で eclipse.exe を除外設定している場合は動きません。)


<変更履歴>
  • 2014/09/29 このページを作成した。
  • 2015/05/17 Cygwin版 emacs でも動作するように対応した。