とっさにEmacsでファイルを開いてしまう癖があり、
PhpStorm/IntelliJ でファイルをまた探すのが面倒なので作りました。逆はこれ。
中身をみていただくとわかりますがopen
コマンドの-a
オプションをつけてアプリケーションを指定してるだけ。
init.el
(defun my/get-curernt-path ()
(if (equal major-mode 'dired-mode)
default-directory
(buffer-file-name)))
;; 現在のファイルをPhpstormで開く
(defun open-phpstorm ()
(interactive)
(let ((fPath (my/get-curernt-path)))
(when fPath
(shell-command-to-string (concat "open -a /Applications/PhpStorm.app " fPath)))))
;; 現在のファイルをIntelliJ IDEAで開く
(defun open-idea ()
(interactive)
(let ((fPath (my/get-curernt-path)))
(when fPath
(shell-command-to-string (concat "open -a /Applications/IntelliJ\\ IDEA.app " fPath)))))
;; (global-set-key (kbd "C-c 5") 'open-phpstorm)
(global-set-key (kbd "C-c 5") 'open-idea)
おまけ
上記のelispを応用すればクリップボードにファイルのパスを保存したりFinderを開くことができる。
init.el
(defun my/copy-current-path ()
(interactive)
(let ((fPath (my/get-curernt-path)))
(when fPath
(message "stored path: %s" fPath)
(kill-new (file-truename fPath)))))
;; 現在のbuffferのディレクトリをfinderで開く
(defun open-finder ()
(interactive)
(let ((fPath (file-name-directory (my/get-curernt-path))))
(when fPath
(shell-command-to-string (concat "open " fPath)))))
(global-set-key (kbd "C-c 1") 'my/copy-current-path)
(global-set-key (kbd "C-c 4") 'open-finder)