【US キーボード Mac】Emacs(ddskk, azik)でカギカッコを入力したい
以下は 2021 年 2 月の状況。
skk と azik は相性のいい組み合わせに見えるが、気まずい瞬間がないわけではない。
丁寧な解説がマニュアルに書いてある。
AZIK では、撥音「ん」を入力するには q を使うこととされていますが、 skk では既に q に関数 skk-toggle-kana を割り当てています。
7. ローマ字入力以外の入力方式 — ddskk 17.1 ドキュメント
q キーで、skk と azik の重要な機能同士がぶつかるのだ。
もっともこの衝突は skk が譲っている。skk で azik を使う場合、q を押すと「ん」が入力される。
では、azik で、ひらがな・カタカナのトグル変換をする時はどうするのか。
以下のキーがトグル変換のキーとして置き代わる。
- 日本語キーボードの場合、「 @ 」キー
- 英語キーボードの場合、「 [ 」キー
カギカッコを入力したい
Mac の US 配列のキーボードで、上記のデフォルトの設定で日本語入力する。
と、カギカッコを入力するつもりで、つい「 [ 」キーに指がのびてしまう。思いがけずカタカナモードになってしまい、ちょっとだけイラっとくるのだ。
US キーボード、ddskk、azik という状況下で 「 を入力するには、
- x[
という具合に、x を前置する。
この、ひらがな・カタカナのトグル変換とカギカッコの入力の設定を入れ替えたい。
x[ でトグル変換、[ でカギカッコの入力にしたいのである。
いや、ひらがな・カタカナのトグルは、カギカッコと同じくらい多用するだろ。
という話はあるかと思う。
しかし筆者はすでに、ひらがな・カタカナ変換を[ control ] + [ k ]に割り当てている。このキーの組み合わせは、ことえり以来の伝統を持つ Mac のカタカナ変換である。そのかわり、それこそ Emacs 以来の伝統を持つ、「カーソルから右を文末まで切り取り」というショートカットは使えなくなるが。
[ control ] + [ k ]でトグル変換するのに、筆者はHammerspoonを用いた。init.el や .skk でなんとかしようとしたが、出来なかったのである。Hammerspoon のスクリプトは、この記事の最後のほうに掲載する。
skk-azik.el
azik での入力は skk-azik.el で定義されている。
筆者は elpa でインストールしたので、ファイルは「~/.emacs.d/elpa/ddskk-20210112.2013/」というフォルダに入っていた。ひとによってはアプリのパッケージ内とかにインストールされてるかもしれない。.emacs.d は隠しフォルダなので、[ command ] + [ shift ] + [ . ]で表示させるか、ターミナルを使うのが良いだろう。
open ~/.emacs.d/elpa/
などとやれば、Finder で開いてくれる。
ddskk フォルダ内にある「skk-azik.el」と「skk-azik.elc」というファイルをコピーして、どこかのフォルダにバックアップしておく。
ddskk フォルダの skk-azik.el を書き換える。
Emacs や CotEditor で開くと、最後のほうに以下のような部分があるはず。
(setq skk-azik-keyboard-specific-additional-rom-kana-rule-list
'(("\'" nil "ー")
("x\'" nil "'")
("[" nil skk-toggle-characters)
("{" nil skk-set-henkan-point-subr)
("x[" nil "「"))))))
上記の ("[" nil skk-toggle-characters)
を ("x[" nil skk-toggle-characters)
に変更。
("x[" nil "「"))))))
を
("[" nil "「"))))))
と変更する。
これを保存する。
この el ファイルに、さらにバイトコンパイルという処理をほどこして elc ファイルを作成する。
elc ファイルにすると読みこみが速くなるらしい。el ファイルと elc ファイルがある場合、elc ファイルが優先される。その場合は el ファイルを編集しただけでは設定が反映されないので注意。
Emacs で以下を実行する。
M-x byte-compile-file
ファイルの場所を訊ねられるので、編集した skk-azik.el ファイルを指定する。
~/.emacs.d/elpa/ddskk-20210112.2013/skk-azik.el
筆者の環境ならこういうことになる。指定すると処理がはじまり、elc ファイルが上書きされる。
Emacs を再起動して [ キーを押し、 「 が入力されれば成功だ。
作成した skk-azik.elc はコピーを取って、どこかに保存しておくといいと思う。ddskk のアップデートで、編集した skk-azik.el が元に戻ってしまう可能性があるからだ。
バイトコンパイルについては、下記のブログさまの記事で勉強させていただいた。
🔗 Emacs のバイトコンパイル | プログラマーズ雑記帳
Hammerspoon スクリプト
ひらがな・カタカナのトグル変換をトグルの変更は、前述の通り Hammerspoon でおこなった。
Hammerspoon は Mac のユーティリティアプリである。インストールすると、ホームフォルダに「.hammerspoon」という隠しフォルダが生成される。その隠しフォルダの中にある init.lua というファイルに lua スクリプトを記述し、Mac を便利にしていこう、という趣旨のものである。
今回の場合は、スクリプトは以下のようなものが考えられると思う。
emacsMode = hs.hotkey.modal.new()
emacsMode:bind('ctrl', 'k', function()
hs.eventtap.keyStrokes('x[')
end)
function emacsWatch(name, event, app)
if event == hs.application.watcher.activated then
if name == 'Emacs' then
emacsMode:enter()
else
emacsMode:exit()
end
end
end
emacsWatcher = hs.application.watcher.new(emacsWatch)
emacsWatcher:start()
だいたいこれで、筆者の満足する環境になった。
ちなみに AquaSKK で同じことをする場合は簡単だ。
~/Library/Application Support/AquaSKK 内の keymap.conf を編集すれば [ control ] + [ k ] をトグル変換に設定できる。編集する項目は「ToggleKana」だ。
文法は以下のリンク先にある。
🔗 keymap.confの文法 – AquaSKK Wiki – AquaSKK – OSDN
また、[ キーで 「 を入力する場合は、上記と同じフォルダに rule ファイルを作る必要がある。
詳しくは下記のリンクの通り。非常に簡単に設定できる。
最近のコメント