ラベル Emacs の投稿を表示しています。 すべての投稿を表示
ラベル Emacs の投稿を表示しています。 すべての投稿を表示

2022年2月8日火曜日

Windows10のEmacsにEPWING形式の辞書を導入

xyzzyだと外字を表示できないので、Emacsで辞書を引く方法を調べた。

辞書

EPWING形式の辞書を予め用意しておく。

eblook

Kazuhiro's blog - eblook 1.6.1+media

からダウンロード。 ダウンロードしたファイルをeblook.exeにリネームし、パスを通した場所に置く。僕はEmacsのbinフォルダにパスを通し、その中に入れている。

lookup

Kazuhiro's blog - Lookup 1.4+media

からダウンロードし、適当な場所に解凍しておく。

C-x dで解凍したフォルダを指定すると、ファイラのdiredが開く。install.elにカーソルをあわせてShift+Lで、インストールが開始される。



init.el

init.elに以下を追加。辞書のパスは読み替えてください。

;; lookup
(setq lookup-enable-splash nil)
(autoload 'lookup "lookup" nil t)
(autoload 'lookup-region "lookup" nil t)
(autoload 'lookup-pattern "lookup" nil t)
(autoload 'lookup-word "lookup" nil t)
(setq lookup-search-agents
      '((ndeb "~/emacs/Dictionary/eld-morph")
	(ndeb "~/emacs/Dictionary/F2J2")))
(global-set-key [mouse-2] 'lookup-word)

使い方

辞書を引きたい単語にカーソルをあわせて、M-xからlookup-wordとするか、マウスホイールクリックで辞書を引けるようになる。



参考

2022年2月7日月曜日

GNU EmacsをWindows10にインストール

lookupでEPWING辞書を引くためにEmacsをインストールする。今はGNU Emacsがスタンダードらしいので、それを使う。

インストール

GNU Emacs download - GNU Project

からemacs-27.2-x86_64.zipをダウンロード、解凍する。 binフォルダにあるrunemacs.exeを実行すると、emacsが起動する。

ホームディレクトリの設定

ホームディレクトリを自分の使いやすい場所に設定する。 環境変数のHOMEを新規に追加すればいい。



再ログインしEmacsを起動すると、登録したフォルダに.emacs.dが自動的に作成される。この中にinit.elファイルを作成。設定はここに書き込んでいく。

PATHを通す

環境変数のPATHにbinフォルダを登録する。


init.el

init.elに初期設定を追加する。僕の初期設定は以下。

;; ビープ音を消す
(setq ring-bell-function 'ignore)
;; スタートアップメッセージなし
(setq inhibit-startup-message t)
;; スクラッチを空に
(setq initial-scratch-message "") 
;; ツールバーなし
(tool-bar-mode -1)
;; 対応するカッコをハイライト
(show-paren-mode t)
;; 単語で折返し
(global-visual-line-mode)
;; 行番号表示
(global-linum-mode t)
(column-number-mode t)

;; スクロールを1行ずつに
(setq scroll-conservatively 1)
;; スクロール速度を無視
(setq mouse-wheel-progressive-speed nil)
;; scroll window under mouse
(setq mouse-wheel-follow-mouse t)
;; スクロール時にカーソルの画面上の位置をなるべく変えない
(setq scroll-preserve-screen-position t)
 ;; スクロール開始のマージンの行数
(setq scroll-margin 5)

;; yes, no は,y, n で済むように
(fset 'yes-or-no-p 'y-or-n-p)


;;; ~がついたバックアップファイルを作らない
(setq make-backup-files nil)

;; txtファイルはtextモードに
(add-to-list 'auto-mode-alist '("\\.txt\\'" . text-mode))


参考

2014年1月20日月曜日

Emacsでhowmファイルを任意のフォルダに作成(改)-キーバインドと色付け


Emacsでhowmファイルを任意のフォルダに作成を少し変更。
僕は、howmファイルを見やすくするために、見出しと小見出しの二つをつけている。**が見出しで***が小見出し。



  • Ctrl+:を押せば行頭に**を挿入
  • Ctrl+]を押せば行頭に*を挿入

し、また見出し行は色を変えて目立つようにxyzzyではしていた。

これをemacsでも実装してみる。前回のコードに

  • キーバインド
  • 色づけ

を付け足してます。

howm-create2dir.el

;;; howmファイルを作成
(defun make-howm-create2dir-file (&optional howm-dir)
  (interactive)
  (let* ((filename (format-time-string "%Y-%m-%d-%H%M%S.howm"))
  (filepath
   (if howm-dir
       (concat (file-name-as-directory howm-dir) (format-time-string "%Y-%m-%d-%H%M%S.howm"))
     (format-time-string "%Y-%m-%d-%H%M%S.howm"))))
    (find-file filepath)
    (if (eq (point-max) (point-min))
 (progn
   (insert (format-time-string "= \n\n[%Y-%m-%d %H:%M]\n"))
   (goto-char (+ (point-min) 2))))
    ))

;;; 本体
(defun howm-create2dir (arg)
  (if (file-directory-p arg)
      (progn
 (make-howm-create2dir-file arg)
 (howm-create2dir-mode))))

;;; メジャーモード
(define-derived-mode howm-create2dir-mode nil "howm2dir"
       "homu mode"
       (define-key howm-create2dir-mode-map "\C-c,c" 'make-howm-create2dir-file)
       (define-key howm-create2dir-mode-map (kbd "C-:") 'hateda-heading)
       (define-key howm-create2dir-mode-map (kbd "C-]") 'hateda-heading2)
       (font-lock-add-keywords
        nil
        '(("^\\*\\*\\*.*\n" . my-face-b-1)
   ("^\\*\\*.*\n" . my-face-b-2))))

;;; フェイス
(defface my-face-b-1 '((t (:foreground "white" :background "SteelBlue"))) nil)
(defface my-face-b-2 '((t (:foreground "white" :background "blue"))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)

;;; 行頭に見出しをつける
(defun hateda-heading ()
  (interactive "*")
  (save-excursion
    (beginning-of-line)
    (insert "**")))

(defun hateda-heading2 ()
  (interactive "*")
  (save-excursion
    (beginning-of-line)
    (insert "*")))

(provide 'howm-create2dir)
(provide 'howm-create2dir-mode)

色の付け方は
  • deffaceで色を設定
  • font-lock-add-keywordsで割り当て

という順序らしい。

2014年1月19日日曜日

Emacsでhowmファイルを任意のフォルダに作成

xyzzyで使ってたhowm-create2dir.lをEmacsに移植してみる。



howm-create2dir.は、引数に取ったディレクトリにhowm形式のファイルを作成する拡張Lisp。PPxと組み合わせての使用を想定している。

Emacsの設定


以下をsite-lispフォルダに保存する。

howm-create2dir.el

(defun make-howm-create2dir-file (&optional howm-dir)
  (interactive)
  (let* ((filename (format-time-string "%Y-%m-%d-%H%M%S.howm"))
  (filepath
   (if howm-dir
       (concat (file-name-as-directory howm-dir) (format-time-string "%Y-%m-%d-%H%M%S.howm"))
     (format-time-string "%Y-%m-%d-%H%M%S.howm"))))
    (find-file filepath)
    (if (eq (point-max) (point-min))
 (progn
   (insert (format-time-string "= \n\n[%Y-%m-%d %H:%M]\n"))
   (goto-char (+ (point-min) 2))))
    ))

(defun howm-create2dir (arg)
  (if (file-directory-p arg)
      (progn
 (make-howm-create2dir-file arg)
 (howm-create2dir-mode))))

(define-derived-mode howm-create2dir-mode nil "howm2dir"
       "homu mode"
       (define-key howm-create2dir-mode-map "\C-c,c" 'make-howm-create2dir-file))

(provide 'howm-create2dir)
(provide 'howm-create2dir-mode)

以下を.emacsにコピペ。

;; howm-create2dir読み込み
(require 'howm-create2dir)

;; howmファイルをhowm2dirモードで開く
(setq auto-mode-alist
      (cons (cons "\\.howm$" 'howm-create2dir-mode) auto-mode-alist))

PPxから呼び出す


ここからはPPx側の設定。
%Ob E:\emacs\bin\runemacs.exe -execute ("howm-create2dir \"%*regexp("%1","s/\\/\\\\/g")\"")

みたいなのを適当なキーかメニューに登録して実行すれば、カレントディレクトリにhowmファイルを作成する。
%*regexpの箇所でやってるのは、%1で取得したパスの修正。たとえばD:\howm\hogeならD:\\howm\\hogeとなるようにしている。 僕は、このコマンドをファイル作成メニューの一つとして登録している。

-|M_makefile =

M_makefile = { ** comment **
&howm = %Ob E:\emacs\bin\runemacs.exe -execute ("howm-create2dir \"%*regexp("%1","s/\\/\\\\/g")\"")
&TXT = *set name=%1\%"テキストファイル"%{%|.txt%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
&CFG = *set name=%1\%"CFGFile"%{%|.cfg%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
&PlainFile = *set name=%1\%"PlainFile"%E %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
&VBS = *set name=%1\%"VBScript"%{%|.vbs%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
&JS = *set name=%1\%"JScript"%{%|.js%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
}

KC_main = { ; PPcメイン窓
\K ,%M_makefile,H
}

2014年1月14日火曜日

Emacsのポータブル化

xyzzyをポータブル化する方法を模索してて、いっそのこと似たようなEmacsをポータブル化して使ってる拡張lispも移植したらいんじゃねとひらめいチャッチャ!
というわけで、今回はEmacsをポータブル化する方法。

インストール


emacs for gnupackをここからダウンロード。USBメモリに解凍する。



やり方


site-lispフォルダにsite-start.elを作成し、以下をコピペ。これでemacsフォルダがホームディレクトリになる。

(setenv "HOME" (substring data-directory 0 -4))

次に、emacsフォルダに.emacsを作成し、そこに設定を書いていく。以下は僕の例。

.emacs

;;起動時の画面を消す
(setq inhibit-startup-message t)

;;アイコンを消す
(tool-bar-mode -1)

; 行番号表示
(require 'linum)
(global-linum-mode)

;; メッセージを消す
(setq initial-scratch-message "")

;; beep音を消す
(setq visible-bell t)
(setq ring-bell-function 'ignore)

;;; *.~ とかのバックアップファイルを作らない
(setq make-backup-files nil)

;;; .#* とかのバックアップファイルを作らない
(setq auto-save-default nil)

ちなみに


emacsでは
  1. 最初に共通設定ファイルであるsite-start.elを読み込み
  2. 次に各ユーザーごとの設定ファイルを読み込み
  3. 最後にdefault.elを読み込む

という仕組みになってるらしい。

そして、「2.各ユーザーごとの設定ファイルの読み込み」だが、

  1. ~/.emacs.elc
  2. ~/.emacs.el
  3. ~/.emacs
  4. ~/.emacs.d/init.elc
  5. ~/.emacs.d/init.el

と順番に探していき、最初に見つかるファイルを読み込むようだ。「~」はホームディレクトリの意。

参考


EmacsをUSBで使えるようにするまでのやり方 - プログラムとかののblog

追記 2014/01/15


(defvar usb-drive-letter (substring data-directory 0 3))
(defvar usb-home-dir (concat usb-drive-letter "emacs/"))

(setenv "HOME" usb-home-dir)


(setenv "HOME" (substring data-directory 0 -4))

に変えた。変える前のやつを使う場合は、emacsをルートディレクトリに展開し、フォルダ名をemacs-24.2-20121208とかからemacsにリネームする必要がある。