ujimushi(@旧sradjp(15364))の日記

旧スラドの日記の引越先です

EmacsでのT-Code(1) tc.elのセットアップとT-Code入力とEELLL

はじめに

今更ながらなのですが,元祖T-Codeの入力環境と言ってもいいEmacs上でtc.elをセットアップする方法について 説明したいと思います。

今となっては,プログラムの開発環境としてEmacsを利用する理由というのはVSCodeとかある現状では やや薄れるのですが,それでも色々な文字コードのテキストファイルを拡張機能を入れずに 扱うことができる等,10年前以上のソフトウェア資源を扱うとなると,今でも有用な環境であることは 間違いありません。

さて,今回は「T-Code入力用エディタ」として利用するためのセットアップについて説明してみたいと思います。

WindowsでのEmacs環境の構築

WindowsEmacs環境を構築するのはこれといった決め手がありません。 自分の場合はtc.elにパッチをあてて補完機能を使っているので,すごく動作が重いこともあって ネイティブビルドmsys2のUCRT64環境をもっぱら使っているのですが,それだとお手軽さがありません。

そこで,ここでは公式ビルドを利用することを検討してみます。

Emacs公式ビルド版のダウンロード

emacsのダウンロードサイトに行くのですが,何故か直接ダウンロードできません。

nearby GNU mirrorのリンクを押すとどこに飛ばされるのか分かりませんが, とにかくダウンロードできるサイトに飛びます。

windowsを押します。

最新版なのでemacs-30を押します。

インストーラーもあるのですが,ここでは独自環境としてセットアップするので,emacs-30.2.zipを押してダウンロードします。

そこで,zipチェックサムを確認する必要があるのですが,ここでは省略します。

Emacsのセットアップ

そして,ローカルの環境で展開をします。Windowsエクスプローラでの展開で可能です。

しかし,最近のWindowsでは次の画面のようにネットからダウンロードしたファイルは制限がついてしまいます。 exeファイルとdllファイルでその制限を外しておいた方がレスポンスがよくなるかもしれません。許可するところにチェックを入れておきます。

次にバッチファイルを作成します。F:test\emacs-30.2がダウンロードしたアーカイブを展開したパスです。 それぞれ自分の環境に書き換えてみて下さい。

ここではHOMEF:\test\workにしています。 つまり,バッチ上でHOME環境変数を設定することで, emacsの設定ファイルの位置のカスタマイズすることができます。

これがバッチファイルから起動する時の利点になります。

次のように書きます。

@echo off
SET HOME=F:\test\work
SET PATH=F:\test\emacs-30.2\bin;%PATH%
cd %HOME%
F:\test\emacs-30.2\bin\runemacs.exe

一度バッチファイルを実行させます。 Emacsが立ち上がります。

するとHOMEであるF:\test\work\の下に.emacs.dというフォルダが作成されます。 その.emacs.dのフォルダ内に次のような内容のinit.elというファイルを作成します。

(set-locale-environment nil)
(prefer-coding-system 'utf-8)
(setq system-time-locale "C")

; Ctrl-hをヘルプからカーソル左側一文字削除に変更
(global-set-key "\C-h" nil)
(global-set-key "\C-h" 'backward-delete-char)

;; パッケージの検索にmeplaを追加
(require 'package)
(setq package-user-dir "~/.emacs.d/elpa")
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

;; パッケージがインストールされてなければ自動で追加するおまじない
;; 下の設定ではMarkdown-mode と tc の二つのパッケージのみ
(require 'cl-lib)
(defvar installing-package-list
  '(markdown-mode tc))
(let ((not-installed (cl-loop for x in installing-package-list
                            when (not (package-installed-p x))
                            collect x)))
  (when not-installed
    (package-refresh-contents)
    (cl-dolist (pkg not-installed)
        (package-install pkg))))

;; ~/.emacs.d/site-lisp においてあるソースを自動でロードします
(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp"))
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
      (normal-top-level-add-subdirs-to-load-path))


(require 'tc-setup)

;; OS側のIME切替を許す
(global-set-key [M-kanji] 'ignore)
(global-set-key [kanji] 'ignore)
(global-set-key [M-\`] 'ignore)

(global-set-key "\M-z" nil)
(global-set-key "\M-z" 'tcode-zap-to-char)

;; 初期画面のサイズと表示位置
(setq initial-frame-alist
      (append (list
           ;; 表示位置
           '(top . 1) '(left . 1)
           ;; サイズ
           '(width . 80) '(height . 30))
          initial-frame-alist))
(setq default-frame-alist initial-frame-alist)

;; フォント設定。ここではBIZ UDGothicにする。サイズは14のところを変更
(set-face-font 'default "BIZ UDGothic-14")
(set-face-font 'fixed-pitch "BIZ UDGothic")
(set-face-font 'fixed-pitch-serif "BIZ UDGothic")
(set-face-font 'variable-pitch "BIZ UDGothic")

(set-fontset-font t 'unicode "BIZ UDGothic")

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(package-selected-packages nil))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(eelll ((t (:foundry "BIZ UDGothic")))))

そして一度Emacsを終了させ,再度立ち上げ直します。

すると,勝手にパッケージをダウンロードして,立ち上がるかと思います。 かなり時間がかかるかと思います。

ここで,tc.elのReadmeに書いとある通り M-x tcode-installを実行します。

最初にAlt+xと入力すると,VSCodeのコマ ンドパレットのように 機能名を入力する欄がウィンドウの一番下に表示されるので,tcode-installと入力してEnterを押します。 機能名にはタブ補完が利用可能なので,タブで適宜補完させると入力しやすいでしょう。

すると,次のような画面が表示されます。ここでは%HOME%/.emacs/tcode/を指定してEnterを押します。

ディレクトリを作成するかどうか尋ねられるのでYとして次へ

キー配列を尋ねられるのでqwertyならそのままEnterを押して次へ

そして,何事もなかったような画面になるので, さらにEmacsを終了させ,もう一度立ち上げ直します。

そしてCtrl+\を入力するとウィンドウの下の方に[TC]というマークが表示され, T-Codeが入力できるモードとなります。

以上でとりあえずT-Codeが利用できる状態までのセットアップが完了です。

T-Codeでの入力

[TC]というマークが出ている状態で?を入力するとT-Codeの機能キーの一覧が表示されます。

それ以外のキーを入力すると基本的には二打鍵で一字入力されるT-Code入力モードになります。

また,このモード中にCtrl-\を入力すると直接入力モードになります。

01, 00, 11, 10の組み合わせで,「木を見て森を見る」タイプのヘルプが表示されます。

また,何かキーを一つ入力してしばらく待つと次にどのキーを入力すると どの漢字が入力されるかを示すヘルプが別バッファに表示されます。

文字の上にカーソルを置いて55キーを入力すると,その文字の運指が表示されます。

交ぜ書き変換で変換できない文字は自分で登録することができます。

T-Codeモード中に記号の|を入力すると,次のように「読み」を入力する画面が表示されます。

ここではまぜがきと入力してEnterキーを入力します。

次に漢字を入力します。交ぜ書きと入力してEnterキーを入力します。

他のアプリケーションからテキストをコピペすることも可能です。

Emacs上でのペーストはデフォルトではCtrl-yということに注意して下さい。

すると,まぜがきfjで「交ぜ書き」と変換することができます。

tc.elの場合は,一文字2打鍵で,スペースキーを利用することなく 直接文字が表示され,これが漢直入力専用環境の特徴といえます。

EELLLの利用方法

次に,漢直の練習環境であるEELLLの利用方法について説明します。

M-x eelllを実行すると,練習環境であるEELLLを実行することができます。

M-x eelllAlt+xと入力するとコマンド入力モードになるので,eelllと入力してEnterを入力します。

すると,次のようにレッスン番号を選択する画面が表示されます。

?を押すと一覧が表示されます。

数字を入力してから?を押すと,その数字を先頭とするレッスン番号が表示されます。

番号を入力してEnterを押すと,レッスン画面となります。

後は,11日目の記事で入力時の動画を紹介しているので, そちらも参考にしてみて下さい。

入力中には自分が入力した文字は表示されず,終わった後でしか確認できないような仕組みになっています。

さいごに

今回は,WindowsEmacsでのT-Code入力環境,tc.elをセットアップする例を紹介しました。

自分が独自に利用している補完機能はネイティブビルドできる環境でないと, 動作が重いのでやや利用が難しいのですが,tc.elの方は問題なく利用できるかと思います。

それではまた。