;; Copyright (C) 2013 j8takagi
;; Author: j8takagi <j8takagi@nifty.com>
-;; Keywords: Emacs 外部プログラム
+;; Keywords: Emacs external program 外部プログラム
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;;; Commentary:
-;; Emacsã\81\8bã\82\89ã\81®å¤\96é\83¨ã\83\97ã\83ã\82°ã\83©ã\83 å\91¼ã\81³å\87ºã\81\97ã\82\92æ\94¯æ\8f´ã\81\99ã\82\8bã\83\9eã\82¤ã\83\8aã\83¼ã\83¢ã\83¼ã\83\89ã\81§ã\81\99ã\80\82
+;; Emacsからの外部プログラム呼び出しを支援するマイナーモード。
;; ■動作環境
;; Linux、Mac OS X、WindowsのいずれかのWindowシステム上
;; Windowシステム上でEmacsが動作している場合、exopen-mode は自動的に有効になります。
;;
;; ■使い方
-
+;; exopen-modeが有効な場合、次の関数を使うことができます。
+;;
+;; exopen-file (file) 外部ファイルを呼び出す
+;; 標準で、C-x C-M-fにバインド
;; ■hook
;; マイナーモードの定義
- (easy-mmode-define-minor-mode exopen-mode
- "minor mode for opening fle in external program."
- ;; 初期値
-(display-graphic-p)
- ;; モード行の表示
- ""
- ;; マイナーモード用キーマップの初期値
- '(("\C-x\C-\M-f" . exopen-find-file)))
+(define-minor-mode exopen-mode
+"Toggle exopen-mode.
+With a prefix argument ARG, enable Auto Composition mode if ARG
+is positive, and disable it otherwise. If called from Lisp,
+enable the mode if ARG is omitted or nil.
+
+open file in external program."
+(display-graphic-p) ; Windowシステムかどうかの判定
+nil ; モード行に何も表示しない
+'(("\C-x\C-\M-f" . exopen-find-file))) ; キーバインド
;; exopen-std-cmd: OSやWindowで設定された関連付けをもとに
;; ファイルを開くプログラムコマンド
(let ((process-connection-type nil) (cmd))
(if exopen-suffix-cmd
(setq cmd (cdr(assoc (file-name-extension file 1) exopen-suffix-cmd))))
- (if (null cmd)
+ (unless cmd
(setq cmd exopen-std-cmd))
(start-process "exopen" nil cmd file)
- (message (concat "exopen: " cmd " " file " at " (format-time-string "%Y/%m/%d %H:%M:%S" (current-time))))))
+ (message
+ (concat "exopen: " cmd " " file " at "
+ (format-time-string "%Y/%m/%d %H:%M:%S" (current-time))))))
;;; バッファで開いているファイルを外部プログラムでオープン
(defun exopen-buffer-file ()
(defun exopen-buffer-file-suffix (suffix)
"open buffer file of other extension in external program"
(let (afile)
- (if (not buffer-file-name)
+ (unless buffer-file-name
(error "This buffer is not visiting a file"))
(setq afile (concat (file-name-sans-extension (buffer-file-name)) suffix))
(if (file-exists-p afile)
"open buffer file or find-file in external program"
(interactive "P")
(let ((afile))
- (if (null find-or-buffer)
+ (unless find-or-buffer
(progn
(setq afile (expand-file-name
(read-file-name "Find external open file: " buffer-file-name)))