GNU Emacs for Mac OS Xのキーバインドのうまくいかない点

[Emacs]

  • C-j への割り当てがうまくいかない
  • A- や C-A- に割り当てると AltGr としての機能(アクセント記号つき英字の入力など)が優先されてしまう
  • M- や C-M- に割り当てると作動しない
  • C-S- は問題なし
  • M-m と M-h でそれぞれ「しまう」「隠れる」が発動してしまう
    • M-q や M-wでの「終了」「閉じる」は発動しない

Cocoa化されるEmacs 23で改善されてるといいんだけど。
Emacsのキーバインディングは色々とややこしいことになっているらしく(参考: Emacs メモ)その辺りも調べる必要がありそうだ。
とりあえずはCot Editor + DefaultKeyBinding.dict + Butlerのまま行くことにする。

蠍配列 dev-1

[キー配列]

現在作成中のキーボード配列。

  • 同手シフトを含む、多キー前置シフト
  • 清濁分置、拗音,外来音も別置
  • 「んょ」「うゅ」など、通常ありえない連接に拗音,外来音を割り当てることで、通常使用するほとんどの拗音,外来音を2打で打てるようにした
  • 弓配列より<Y>位置,<:>位置の頻度を下げ、<@>位置の頻度を上げた

このキー配列の指向

  • 総合的な速度よりも体感的な快適さを目指す
  • 1モーラ(1拍)あたりの最低速度が下がりにくくする
  • 総合的な速度よりも、常に一定以上の速度が出せることを優先する
  • 覚えた後の快適さのためには、覚えやすさはある程度犠牲にしてもいい



==単打==
12345  67890△
どのかてあ  むういしーが・
す☆★とた  きん◆◇でご
○●まに◎  くっ、。▲

==◆に続けて入力==
_____  _______
_めせほげ  _______
をおらもふ  _ぺ_ぴぬ__
__ゆね_  _____

==◇に続けて入力==
_____  _______
_ろえや_  _______
けだはなば  _ぱゐ_ゑ__
__ぼへ_  _____

==★に続けて入力==
_____  _______
_____  _ぎれわ?「」
ぶぞ_ぜ_  ずるこつよ__
_____  ひび___

==☆に続けて入力==
_____  _______
_____  _ぐちさ!『』
__ぽぷ_  づりじそみ__
_____  ざべぢ__

==拗音シフト(カタカナ→ひらがなの順に押す)==
_____ _______
_____  _ギチシ___
_____  キリジピミ__
ょゅ_ニゃ  ヒビヂ__

==○に続けて入力==
_____ _______
_____  _ゃゅょ___
_____  ぁぃぅぇぉ__
○____  ゎヵヶ__

==△に続けて入力==
__ __ __ __ __       __ __ __ __ __ _△_
ツォ ツェ トゥ ツィ ツァ       __ __ __ __ __ __
フォ フェ フュ フィ ファ       __ __ __ __ __ __
ウォ ウェ __ ウィ ウァ       __ __ __ __ __

==▲に続けて入力==
__ __ __ __ __       __ __ __ __ __ __
__ イェ ドゥ __ __       __ __ __ __ __ __
ヴォ ヴェ ヴュ ヴィ ヴァ       __ __ __ __ __ __
クォ クェ ヴ クィ クァ       __ __ __ __ _▲_

==その他==
と○: ティ   ま○: ディ
と●: テュ   ま●: デュ
ー◎: ルァ   が◎: グァ
ー○: スィ   が○: ズィ
ー●: シェ   が●: ジェ
。●: ヒェ
ご●: チェ

追記:

弓配列の後継? - id:y_koutarou

一応そういうことになります。
弓配列における拗音/外来音重視をさらに推し進めた形で、方向性はあまり変わっていません。
以下のような理由で、名前を変えて別配列扱いにしました。

  • 入力のキャンセルが伴うので対応できるキー配列エミュレータが変わった
  • 濁音だけでなく拗音・外来音も別置した
  • “ある1文字の入力方法は常に一つ”という法則をやめた


余談ですが、今回も弓配列のときと同じく、
月配列,星配列との天体つながりで「蠍」にしました。(弓配列は弓弦月の弓)

「リテラル」の意味


文字にメタ文字とリテラル文字の二種類が存在すること。リテラルの意味がいまいち掴めずに来ているので徐々に慣れていきたい。
「正規表現の機能の覚書き」を読む - flowjack

リテラルって、何を表しているのかわかりにくい言葉ですね。
"literal" は、辞書的には「文字どおり」「直定数」って意味だそうです。


リテラル正規表現においては、リテラルが「文字そのものを表すもの」という認識でいいんじゃないかなと思っています。
メタ文字は「機能を持たされた文字(のシーケンス)」といった所でしょうか。


プログラミング言語においては、「ソースコード上に値が直接記述されたもの」という意味だったり、
しばしばそれを「定数」と呼んだりするのが、わかりにくさの原因になっている気がします。


しかし、JavaScriptの“関数リテラル”などは「ソースコード上に値が直接記述されたもの」とも言えそうにないですね。
リテラル”は、コンテキスト*1によって意味が違うあいまいな言葉と思っておいたほうがいいのかもしれません。

*1:というより言語かな?

正規表現の機能の覚書き

正規表現の機能の覚書き - はてな匿名ダイアリー
匿名ダイアリーのエントリ内でばらしてしまったのでこちらからもリンク。
私は正規表現の色んな箇所でことごとくつまずいたので、正規表現がよくわからないという人に、
その辺りの説明を参考にしてもらえればといいなと思って書きました。

弓配列(X-102ベース部分)

[キー配列]

=単打=
12345  67890ふ〜_
どのかとあ  つういしーじ・
す☆★てた  きん◆◇でち
ょゅまにゃ  くっ、。ヴ


=★に続けて入力=
_____  ________
_____  _ぎれみ?「」
ぇぞ_ぉ_  ひりこはよ_
_____  ぱぷ___


=☆に続けて入力=
_____  ________
_____  _ぐおや!__
ぃ_ぽぁ_  ずるわそさ_
_____  ざぺ___


=◆に続けて入力=
_____  ________
゛めえごげ  _______
をがもらば  _む_ぢぴ_
ぜぼゆねゐ  _____


=◇に続けて入力=
_____  ________
゜ほろへ_  _______
せだけなぶ  _ぅび_ぬ_
べ__づゑ  _____

MacUIMでキー配列定義ができるらしい

[キー配列]


egbridgeが販売終了して、Mac OS X上でQwertyローマ字,JISカナ以外の入力方式を使うための数少ない環境がなくなった。
私が使っている弓配列egbridgeで実装していたから、これからは別の方法が必要になる。


新JIS・月 キーボード配列 5打鍵目#93によると、MacUIMのAnthy/Kanaモードで月配列が使えるらしい。
(定義ファイル(.uim)をホームディレクトリ(~/)に置いて、モードを「かな」に設定して再ログイン。)


書き換えて試してみたところ、2つの点においてegbridgeのローマ字カスタマイズより自由度が高いことがわかった。
1つは、数字段が使えるということ。
もう1つは、入力のキャンセルができるということ。
ローマ字入力でいえば、<k> を入力すると "k" が出力されるが、その後 <a> を入力すると、 "k" が キャンセルされて "か" が出力される、というようなこと。
かな系配列なら、濁点後置が実装できることになる。
「っぁ → つぁ」というようなことも可能になりそうだ。


※追記 [2008-03-05]
私の環境だと何故かカタカナ変換(カタカナとして確定)が動作しない。
カタカナ変換は多用しているのでこれが使えないのは困る。
原因は今のところ不明。


※追記 [2008-03-11]
MacUIMは、特殊な記号類も出力可能らしい。
かなりの記号が使えるようだけど、ハートマーク(♥)は使えなかった。




MacUIM定義ファイル関連:


MacUIM公式サイト/Intel版.dmg:

コメント記法いろいろ

[プログラミング]

行末までのコメント

// C++, C99, Objective-C, D言語, Java, C#, PHP, JavaScript,
// ActionScript, Groovy, Concurrent Clean, Delphi, Xtal,
// PukiWiki, FreeStyleWiki, Hikiなど

# Perl, Ruby, Python, PHP, Tcl, YAML, shなど

; Emacs Lisp, Common Lisp, Schemeなど

-- Haskell、Lua, Eiffel, Ada, SQL, VHDLなど

% Erlang, TeX, Matlab, Prologなど

.. reStructuredText

* COBOL

' BASIC

REM BASIC, Batch file

::Batch file

Batch file

なでしこ


ブロックコメント

/* C言語, C++, Objective-C, D言語, Java, C#, CSS, JavaScript, 
ActionScript, Concurrent Clean(ネスト可), Prolog, Xtalなど */

/+ D言語 (ネスト可) +/

--[[ Lua (ネスト可) ]]

#| Scheme(SRFI 30/ネスト可) |#

(* Standard ML, OCaml *)

{ Delphi }

<!-- HTML, XMLなど -->

=begin
Ruby (行の途中からは書けない)
=end

%{
Matlab (行の途中からは書けない)
%}

その他

(?#正規表現)