追記2026/10/04
Lacaille と Google日本語入力の入力言語切替の相性の悪さについて
- 入力ソースとして、Mac標準の英語(ABC)とGoogle日本語入力を使っている場合、Google日本語入力からABCに切り替えた時に、入力ソースは、ABCになるけれど、Lacailleの方は日本語入力(ローマ字入力)のままという現象が最近?私の手元では起こってました
- Mac標準の日本語 入力ソースであればきれいに動くようですが、Mac標準の日本語 入力ソースはすごく入力が遅くないですか?
- どうやら、英語の入力ソースの前には、1つ別の英語な入力ソースを入れれば、反対に、Google日本語入力の前にも、別の非英語の?入力ソースを入れれば、入力ソースとLacailleのモードが揃うようです。
- そこで、私は、入力ソースに、Mac標準の英語(ABC)、Mac標準のインド英語(IN-ABC)、Mac標準のハングル、Google日本語入力を入れ、システム設定→キーボード→キーボードショートカット→入力ソース→入力メニューの次のソースを選択に、自分的に押しやすいcmd j を設定し、切り替え時は、cmd j を2回押す、正確には、cmd を丁寧に一度指を離して押すようにすると、きれいに入力モード変更ができるようになりました。
- その入力をするKarabinerを書けば早く?楽に?切り替えできるようになるかも?
追記
- 日本語配列キーボードで | (パイプ, pipe)の出し方
- international1 が \ のキー、international3 が ¥ のキー (だから shift + international3 で出せる)
- 日本語配列キーボードの @ のキーのkey_code は open_bracket
- : け のkey_code は quote
to で出すなら
{
"key_code": "international3",
"modifiers": [
"shift"
]
},
経緯・背景
- Macを使い始めた
- Windowsでは、かつてはやまぶき→ その後はbenizaraで親指シフト(飛鳥配列)を使っていたよ
- 飛鳥配列とは、未来の子供達のための日本語かな配列のことだよ(濁音半濁音が逆親指シフト縛りというルールがなく(←元祖親指シフトのNICOLAにあったルール)、自由に文字を配置(=よく使う文字を押しやすい位置に配置)したのが特徴)
- これらのソフト(やまぶき、benizara)は英数モードでも親指シフトで記号や機能キーを入力できたよ
- Windowsの時には、日本語入力だけでなく、英数記号入力でも親指シフトを活用してたからMacでもやりたいね
- MacにはKarabiner-Elementsという高名なキーバインド設定ソフトが有る
- (WindowsにもAutoHotKeyというソフトがある)
ポイント(この記事の構成)
- ☆ 今回の記事のには、以下のものがあります。(参考にできます)
- Karabiner-Elementsの設定の例と解説: この記事の↓の方にあります
- 私の設定ファイル
- Karabiner-Elements の設定内容 ( Complex Modifications の設定内容)
- Google日本語入力の辞書ファイル
- 自分の親指シフト配列
- lacaille 形式
- やまぶき形式 (解説後述)
理念
- 右手でトラボを持つから左手だけでできることを増やしたいよ
- 右手の位置がフリーになると(オンキーボード固定でなくなると)姿勢が楽だよ
- さらにいうと、左手もキーボードから離せる(右手のトラボだけ)のタイミングが作れると更に楽だよ
- 本来複数キーストロークかかるものをワンストロークで入力できると楽だね
- 今回は、日本語の頻出単語はしなかった(2024/12/18やりはじめた。下に記載)
トラボ
- エンターとバックスペースはトラックボールのティルトに設定してあるよ
- こういうのが右手だけ(左手をオンキーボードにしてなくても)で入力できるのは便利だよ
方法
- 親指シフトは Lacaille だよ
- 多分、連続シフト(親指シフトキーを押しながら文字キーを2つ押すと、両方にシフトが入る)に対応しているよ
- 多分、Karabinerは連続シフトに対応してなさそう(?) (on とか upとかを頑張って書くとできるのかな?)
- Karabiner-Elementsを多用しているよ
- 298個の入力ルールを設定したよ
- それには1個登録に2分?として、600分、つまり10時間かかったよ
- Google日本語入力の辞書登録もしてるよ
Karabiner-Elements
- 公式ドキュメント
- key_code表
- github.com
- delete_forwardなど、Mac(Macbook?)のキーボードにはないkey_codeもある
Karabiner-Elementsではこういう入力内容を設定したよ
- 日本語のよく出る言い回しのショトカ…はGoogle日本語入力の辞書登録でやってる
- 「CloudFront」みたいな、英語のよく出る言い回しのショトカ( c + l + kana とかに割り当ててる)
- 親指シフト安定化(下で詳述)
- 機能的なショトカを押せるようにする(特に左手だけで押せるようにする)
- 例: 同じアプリケーションのウィンドウ切り替え(とてもよく使う、f + e に設定してる)など
- 機能キー割り当て(エンターや矢印キーなど)
- 40回backspaceを押すなど( kana + 9 に設定してる)
- 記号数字入力
- (月) なども(ctrl + eisuu + 1) に設定してる。
- 右クリック時に項目を選んでクリック
- Firefoxで、Windowsではリンク右クリック→LでそのリンクURLをコピーできますが、Macだとそのショートカットキーがありません
- そこで、7回↓を押してエンターみたいなことをします(リンクの右クリックメニューの上から7つめに「リンクをコピー」がある)
- Google日本語入力の2024/10/21 0:44(にちじの変換、s + e に設定してる) や0:44(じこくの変換、eisuu + s + c に設定してる)
- 自分の名前の Namae-Myoji 形式とか、メアドの @ 以降とかを n + m とか @ + c とかに設定すると捗る
Karabiner-Elementsのコツ
- 以下追記 2025/04/29 16:03
- 日本語キーボードのkey_codeは以下の記事のような表をみないとわからない
- 3つ横同時押しはかなり押しやすい semicolon l k 2025/04/24 5:08
- eject で待つのは280ミリ秒とか待たないと誤った入力がされやすい 2025/04/26 3:03
- IMEで3回変換するのにも、いちいち120ミリ秒とか待つ感じ。3を(Karabinerに)押させたほうがだいぶ早いだろうね 2025/04/26 3:05
- 親シフキー3つ押しもありや 2025/04/27 2:22
- 「した」みたいな活用(これは「する」8位の活用)はあの単語頻度帳に出てこ無いので、自分で足す必要がある 2025/04/29 7:36
- 8位みたいな変換がⅧ番目とかだと、j k 同時押しⅧ回はミスるので、右手最上段の数字で変換先を指定すべし 2025/04/29 7:37
- 「ので」「かな」かも出てこないので、最初に頻度表最初の数十やってたら、自分で各文章に出てくる言葉でショトカないのを足していいくべし 2025/04/29 7:40
- 単語頻度帳は最初は機能語がとても多い 2025/04/29 7:41
- Macがスリープから開けたりして、メモリキャッシュとかが整ってない?時はIMEとかの反応が遅いので、特に eject の hold時間を増やして(300ms とか 350ms とか) 対応させると良いのだろう。スリープ開けに使うことが多いショトカは。 2025/04/29 14:08 (まだ完全には分かっていない) 2025/04/29 16:06
- 以上追記 2025/04/29 16:04
- 同時押し判定時間は 500ミリ秒にした(デフォルト50ミリ秒なのでかなり長い)
- ゆっくり目のキーボードなのもあるかも
- とはいえ、Macbookのキーボードでも、外付けキーボードでも同じ500ミリ秒
- 日本語の親指シフト入力だと、結構長めになるのかな?
- 文字キー2つのショトカは結局、誤爆多いので親指シフトキー(japanese_eisuu または japanese_kana)をつけて3つ同時押しになること多い
- 左親指シフトキー(japanese_eisuu)は右手がオンキーボードじゃないときのためにとっておきがちかも。なので、右手もオンキーボードになる、文章入力や、コマンド入力用のショトカのための親指シフトキーはjapanese_kana になる。
- ☆ to で {
"hold_down_milliseconds": 120,
"key_code": "eject"
} とすると、処理に時間がかかる処理を待てる。(入力モード切り替えや、IMEの変換処理など)
- 索引スプレッドシートを作ろう
- 単純なキー入れ替えは Simple Modificationsでできるよ (このキーボードのときだけ入れ替えもできる)
Lacaille
- 実は複雑な出力をさせることも可能な模様
- 設定したキー配列のエクスポート(バックアップ)について
私の親指シフト配列での工夫 (私の親指シフト配列)
- かなは飛鳥配列123ベース(多分)
- 英数モードのときに、逆親シフトで大文字入力
- エンターを中指上に配置することで押しやすくしてる
[ローマ字シフト無し]
無,ち,そ,4,5,6,7,よ,の,0,−,定,¥
そ,−,に,ぴ,[,],と,入,は,ば,ぶ,¥
き,し,う,て,ぎ,ゆ,ん,い,か,た,ほ,後
ぽ,け,じ,後,へ,ゃ,っ,ょ,ゅ,め,,
[ローマ字左親指シフト]
{,[,終,},゛,無,’,*,¥,/,+,^,|
ざ,え,入,ぁ,ぅ,ぇ,ぃ,入,ま,!,),_
だ,ち,あ,り,ぉ,ず,る,す,ふ,で,げ,逃
ぜ,ひ,せ,ね,び,や,が,,,.,?,ざ
[ローマ字右親指シフト]
!,”,れ,$,%,&,無,゜,>,<,=,_,無
れ,ぱ,に,ぺ,&,ぢ,よ,入,こ,ぞ,ご,無
わ,お,な,ら,づ,ぬ,く,の,つ,さ,ろ,後
ぷ,べ,み,ぐ,ヴ,む,を,ど,も,ぼ,ぢ
- v にバックスペースを置いて、とても押しやすい位置にしている
- エンターを左親eに置くことで、やはり押しやすくしている & 右手マウスでもエンター入力可能にしてる
- しかし、今では、トラックボールの左ティルトをエンターにしたので、両手キーボードの時にしか使わなくなった (右手マウスで、左手をキーボードから離せる楽な姿勢を取れるタイミングが増えた)
- 小指シフトは普通 (benizaraって、小指シフトと親指シフトの両方同時押しがあるんだね)
[ローマ字小指シフト]
!,”,#,$,%,&,’,(,),無,=,〜,|
Q,W,E,R,T,Y,U,I,O,P,`,{
A,S,D,F,G,H,J,K,L,+,*,}
Z,X,C,V,B,N,M,<,>,?,_
[ローマ字小指左親指シフト]
!,”,#,$,%,&,’,(,),〜,=,〜,|
Q,W,E,R,T,Y,U,I,O,P,`,{
A,S,D,F,G,H,J,K,L,+,*,}
Z,X,C,V,B,N,M,<,>,?,_
[ローマ字小指右親指シフト]
!,”,#,$,%,&,’,(,),〜,=,〜,|
Q,W,E,R,T,Y,U,I,O,P,`,{
A,S,D,F,G,H,J,K,L,+,*,}
Z,X,C,V,B,N,M,<,>,?,_
- バックスラッシュ(英数右親指シフト人差し指中段)はもしかしたらbenizaraでは指定できないかも
- バックスラッシュは、Macだと、option ろ みたいなとても押しにくいデフォルトなので、ぜひ押しやすいところに設定したい(デフォルトで押しにくいのにたくさん使う)
- パイプもかなり押しやすくしてる あとイコールとか
- 数字もデフォルトだと遠いものは親シフで三段内に入れてる
- 家や終や下はbenizaraだけで移動系のショトカ設定できてとても便利
[英数シフト無し]
1,2,3,4,5,6,7,8,9,0,−,^,¥
q,w,e,r,t,y,u,i,o,p,@,[
a,s,d,f,g,h,j,k,l,;,:,]
z,x,c,後,b,n,m,,,.,/,¥
[英数左親指シフト]
!,”,v,$,%,&,’,(,),!,=,〜,|
家,1,入,2,|,Y,U,I,O,P,`,{
{,0,(,$,[,H,J,K,L,+,*,}
−,4,終,v,B,N,M,下,家,?,_
[英数右親指シフト]
!,”,#,$,%,&,’,(,),q,=,〜,|
Q,W,E,R,T,&,%,入,”,5,`,{
A,S,D,F,G,],\,),=,},*,}
Z,X,C,V,B,+,_,<,>,?,_
[英数小指シフト]
!,”,#,$,%,&,’,(,),q,=,〜,|
Q,W,E,R,T,Y,U,I,O,P,`,{
A,S,D,F,G,H,J,K,L,+,*,}
Z,X,C,V,B,N,M,<,>,?,_
[英数小指左親指シフト]
!,”,#,$,%,&,’,(,),〜,=,〜,|
Q,W,E,R,T,Y,U,I,O,P,`,{
A,S,D,F,G,H,J,K,L,+,*,}
Z,X,C,V,B,N,M,<,>,?,_
[英数小指右親指シフト]
!,”,#,$,%,&,’,(,),〜,=,〜,|
Q,W,E,R,T,Y,U,I,O,P,`,{
A,S,D,F,G,H,J,K,L,+,*,}
Z,X,C,V,B,N,M,<,>,?,_
私のGoogle日本語入力の辞書登録の種類
- 1: 同音異義語の読み変え(確定で変換できるように)
- 書く(らいく) みたいな (英語読み) 火(ふぁい)
- とはいえ、(火) はKarabinerで同時押しを作ったので、自分でふぁいと入力して変換することはなくなった
- 両(りやん) みたいな (中国語読み?)
- 「りょう」だと、量 とかとの競合で一発で変換できないので
- 以降(よりあと) 移行(うつこう) みたいな
- 秒(びや)
- たもかん 保管 名詞
- 2: 親指シフト入力のミスのカバー
- 例:じっはう → 実行
- 例:あくくる → アンクル
- 例:「ほんとうに」は、右手が3つ続き、四文字目の「う」がホムポなので(一方「と」は右人差し指上で遅いので)、ほんうとになりがち。なので、「ほんうと」に辞書登録で「本当」を入れてる
- 3: プログラムもよく使うの登録するといいかも(Karabinerでもいいけど ←結構設定してる)
- すく → (alertを発生させるscriptタグ)
- ろが → ロガーをかくとか
- 4: 矢印だすのに「ひや」とか「みや」とか。これは最初から登録されてるかも。逆に漢字(はんじ)を出すのに「ひか」とか「みか」とか
- 5: 「童謠」みたいな、仕事で使わない変換を(誤変換したら)抑制単語にして、一発変換率を上げる (抑制単語に登録することになる地名も結構多い)
- 氏を出したいのに宇治が先に出てきてしまう…みたいな。
- あさ → 麻
- ずし で 確定で図示を出すために 逗子 を抑制単語にするなど 2024/12/29 17:20
- せいやく で 制約を確定出しするために成約を抑制単語に 2024/12/29 17:22
- ぜんけん で 全件を確定出しするために 全県を抑制単語に 2024/12/29 17:23
- だいへ の予測変換で 大兵 が出ると困るので 大兵をだいへで抑制単語にしてる 2024/12/31 5:26
- 文末の だね を確定で変換できるように ダネ を抑制単語に 2024/12/31 5:28
- 貯まり待ち を確定出しするために 玉里町 抑制単語
- に 爾 抑制単語
- にちじで 2024/12/31 5:52を出すために、にちじには大量に抑制単語がある
- になって 担って 2024/12/31 5:53抑制単語
- ふよう 扶養 抑制単語 2024/12/31 5:54
- まえだと 前田利家 抑制単語 予想変換で出てくるのがまずい
- みとく 水戸区 抑制単語 これはよく困ってるひとが多そう
- やろう 野郎 抑制単語 これも 2024/12/31 5:56
- 6: ほししで☆☆☆を出せるようにして目立たせやすくしてる
- 7: 普通に変換で出てほしいが変換候補にないもの
- 8: より少ない文字数で変換できるように登録
外付けキーボードのポイント
- ☆外付けキーボードの種類によっては、optionが内側、cmdが外側に来る外付けキーボードがあるが、圧倒的にcmdのほうを使うので、KarabinerでMacと同じ位置になるように入れ替えるべし
- 3つ同時押しは基本、左ctrl(左小指のホームポジションの左隣) + eisuu + 文字キーで行われるので、左小指の左にあるキー(Windows向けだとCapsLock)は大活躍
- cmdがちゃんと押しやすい位置にあったら、cmd関係のショトカをleft ctrl(capslock)に移さなくてよかったかも (外付けキーボードの配置でcmdが押しにくいのもあって、Windowsのときと同じになるように移してしまった)
- あと、3つ同時押しで、eisuuとcmdを同時に押す押し方(左親指で2つを同時に押す)もありうるなと思った
- 3つ同時押しのうち、左手だけで押せるようにする同時押しは、(文字キーだけで3つだと覚えにくいからか) 修飾キーを多用(2つ含める)しがち…なので、修飾キーの押せるバリエーションが増えると押せるパターンが増えて良い
- 自分のキーボード固有の問題かもしれないが、 z c eisuu だと同時押しできず、(zではなく) x c eisuuだと同時押しできた(↓を5回押すショトカにした)
そもそもMacのキーボード配列周りについて
- ☆Macのキーボードは、1の左に全角半角がないので、一つずつズレている
- ので、 kana 8 にバックスペース5 、kana 9にバックスペース80とか設定してると、kana8を押したつもりがkana9になってて、大量にきえる
- しかも、Macのメモアプリだと、アンドゥで大分前まで戻るのでちゃんと戻せなかったり
キーボード配列の仕組み
- cmd と control
- controlがUNIX由来のショートカット(主にテキスト編集やターミナル操作)で、cmdはMac由来のショートカット
- なので、同じ効果のショートカットが、アプリケーションによってcontrolだったりcmdだったりして難しい
- そもそも、キーボード配列は、キーボードごとに微妙に配置がそれぞれ異なるっぽい(大筋としてのJIS配列とかUS配列はあるっぽい)
Macのキーボードショートカット
- 公式 https://support.apple.com/ja-jp/102650
- なんか、これを読んでも載ってない重要ショートカットがあったような…
- https://support.apple.com/ja-jp/102650
- cmd h 最前面ウィンドウを隠す
- option + command + W そのアプリのウインドウをすべて閉じる
- ☆ option + command + esc:アプリを強制終了
- ☆☆ command + 低アクセント (`):使用中のアプリのウインドウを切り替え(かなりよく使う)
- 自分は f + e にKarabinerで設定して大活躍させれてる
- なんでこれは順繰りができるのに、アプリ切り替えは1つ前のと交互しかできないんだろう(cmdがmodifier扱いで押してる間中tabを押すごとに次に進むだから)
- control + K:挿入ポイントから、行または段落の末尾までの範囲にあるテキストを削除します。
- ☆command + 右矢印:挿入ポイントを現在の行の末尾に移動します。
- ☆control + E:行または段落の末尾に移動します。(ターミナルはこれ)
- windowsと違って2系統あるのがむずかしポイント(controlがunix系のを踏襲してるんだと思う)
- 一種類多くシフトキー(レイヤーキー)があって、よく多くの同時入力ができるのはいいが、同じことをするのにアプリケーションによって入力方法が違うのはむずかしすぎ
- 単語削除のショトカもあって、単語先頭に移動(これもショトカある)してからそれをすると、現在カーソルが要るところの単語をきれいに消せる。s + v にそういうKarabiner同時押しを設定してる。
めっちゃ多用してるショトカ (設定してよかった)
- s e → 現在日時 2024/10/29 5:04
- Google日本語入力で「じこく」と入力すると現在日時を入力できる。1ストロークで日付 時間入れれるのは便利とても多用してる
- カーソルを文末や先頭に移動させるショトカはホームポジションに近い位置で押したいね
- だから、Windows やまぶき / benizara 時代から、 eisuu + c を end、eisuu + q を Home にしてた。(Macでもそうした)
- ただ、Macはデフォルトでホームポジションに近い位置で押せるそういうショトカがある
- たぶん、macだと、「行末にカーソル移動」は、アプリケーションによって ctrl-e か cmd + → だと思うけど、☆☆☆後者は左手だけで押せないので、左手だけに割り当てると便利☆☆☆
- 自分は それぞれ、 a + f 、 eisuu + c に設定してある。 a + f も真のホームポジション(運指しないで押せる) なので、便利 (文章書いてて、訂正したりすると、文末に飛ぶ必要は頻繁に発生しますよね)
- もしかすると、 ctrl + e と cmd + → をKarabinerの toに並べて書けば、1つの同時押しでどのアプリケーションでも文末に移動できるようになるかも? 別のショートカットが誤って発動してしまうかも? (将来の課題)
- 私は f + eに設定してる、「同じアプリケーションのウィンドウ切り替え」もよく使う
- デフォルトでは cmd + @。左手だけで押せる + ホームポジションにより近いショトカにしてある
- ↓それのKarabiner-Elementsでの書き方(あとでたくさんこういう例が出てきます)
{
"description": "cmd @(同じアプリケーションのウィンドウ送り)",
"from": {
"simultaneous": [
{
"key_code": "f"
},
{
"key_code": "e"
}
]
},
"to": [
{
"key_code": "open_bracket",
"modifiers": [
"command"
]
}
],
"type": "basic"
},
- バックスペース(delete)40回うつショトカ(自分は japanese_kana + 9 にしてる)
- 純粋に便利。
- Macのデフォルトだと cmd + deleteが行頭まで削除(しかしdeleteは遠い)
- ☆☆☆そもそも、vをバックスペースにしてる(超便利)
- delete 5回も便利 (自分は japanese_kana + 8 にしてる)
- 単語削除は…単語削除も作った(単語の先頭に移動するMacのショトカと、カーソル位置から単語のおわりまでを削除するMacのショトカがあるので組みあわせる)けど、多分日本語だといい感じに動かないので使ってない
- ☆ウィンドウズ時代からだけど、同親シフ中指上とか、単なる中指上とかにエンターを置いて、エンターをとても打ちやすくしてる
- ◎Tabを本当のホムポ(中段)の同時押しに設定するとやはり捗る (自分はs + d と k + l )
- ● (くろまる) もワンストロークで打てるようにしてる (くろまる変換エンター) (j + : )
- EC2インスタンス みたいな単語もワンストロークで出せてやはり便利。 (e + k + kana)
- 辞書登録だと いつ変換エンターで4ストロークだと思う
- 1台みたいな半角数字と日本語がまじった言葉も辞書登録するといいかも(いちだ) モード変換があるとストロークが増えるからね。
- 書式なしでペースト (ctrl eisuu v に設定してる)。デフォルトだと shift option cmd v (4つ押し)
- ページ最上部へ移動(ctrl eisuu q に設定してる)と、ページ最下部に移動(a f に設定してる)はとてもよく使う 2024/12/29 12:28
日本語単語ワンストローク化(これから)
- 2024/12/17まで、(というか9月ころ?)日本語の単語もkarabinerでワンストロークで入力できるようにしてたけど、滅多に使ってなかった
- 2024/12/18、日本語の単語の頻度順の表をみたら、これをワンストロークにしていけば役立ちそうだったので、1日1単語ずつやっていくつもり(仕事に出てくる単語)
- 基本的なストロークは 単語「する」 なら、1文字ずつ押した時に親指キーをつけた k + j + kana という感じで1文字ずつ押した時のキーをベースにしようと考えてる
- 親指キーがないと誤入力だらけなのはもうわかったので、基本親指キーをつけていく
- そして、頻度が高いものにkanaをつけて、次点のものに eisuuをつけていく。そうしないとキーバインドがわからなくなるため(まるでnicolaの濁音ルール(逆親)なのだ)
- その逆親は必ず濁音というルールを抜いて、逆親だけどホームポジションみたいな一等地により頻度の高い文字を割り当てたのが飛鳥配列なのだ
- eisuuよりkanaが優先なのは、eisuuは、左手だけで打てる(右手をトラボに乗せたままでも打てる) 親指シフトキーだから。
- 日本語の単語の頻度の大体のイメージ
- する 8位
- こと 19位 ↑機能語
- 私 54位
- 日本 77位
- 持つ 100位 ↑基本語
- 必要 128位
- 社会 173位
- 今日 247位
- 好き 353位 ↑基本語彙 (これだけあれば最低限話せそう)
- 対応 500位 ↑フォーマルな言葉
- 面白い 785位
- クリック 940位 ↑よく使う固有的な言葉
- 可愛い 1064位
- 電子 1430位 ↑ 難しい言葉だけどみんなが使ってる言葉
- 憲法 1684位 ↑ インテリな方向性の人しか使わない言葉
- ヤフー 1837位 ↑ 上位の固有名詞
- 長官 2202位 ↑ インテリしか使わない言葉
- 疾患 3069位 ↑ 専門的な言葉
- 新鮮 4021位
- チョコレート 5418位 個別の物を表す言葉
- 妥協 7291位
- 学識 11893位 ↑公的な文章でしか使わない言葉
- 特筆 15744位
- 華族 20079位 ↑特定の文脈でしか使わない言葉
- 物納 30737位 ↑ 限られた世界でしか使わない言葉
- 薫陶 40341位 ↑ わざと難しくした言葉
- 凹面 50967位 ↑めちゃ限られたことをいう言葉
- エマージェンシー 63420位 ↑日本語で置き換えられる外来語
- 銅色 74402位 ↑ その道の人しかわからない言葉
- 真諦 87545位
- 詩境 95293位 (これもgoogle日本語入力で変換できる)
- 素食 121932位 ↑急に意味が分かる言葉になる。たぶんオリジナル語彙
- 青鯵 152442位 (調査対象で1回だけ出現)
- つまり…
- 350単語あれば最低限話せそう
- 500単語あればフォーマルな書き方も読めそう
- 1000単語あれば普通の生活できそう
- 1500単語あれば大卒事務員にはなれそう
- 2200単語あればインテリ傾向なみんなの輪に入れそう
- 3100単語あればプロの話がわかりそう
- 12000単語あれば公的文章を書けそう (実用上はこれだけあれば十分すぎるんじゃないかな)
- 20000単語あれば歴史的なことがわかりそう
- 30000単語あれば専門的なことがわかりそう
- 40000単語あればわざと難しくいうことができそう
- 50000単語あればめちゃ限定的なことを1単語でいえそう
- 95000単語あれば何でもわかりそう
- 122000単語あれば勝手にオリジナルな単語を作ってそう
- 頻度の表:
- 日本語で成果でたら、英語もやっていきたい(このあたりは続報をこのブログに書きたい)
Karabiner-Elementsのテンプレートの説明
●変換・確定つき日本語短縮入力 2024/07/20 0:34
# 含まれる音2つを入力するショトカに自分はすることが多い
## この例(最近)だったら さ(;) き(a)
# ただ、こんなに短い言葉だと、めったにショトカ使わないので、例としては悪い
## 日本語短縮入力は、IMEの辞書や予測変換でもカバーできるのであまりKarabinerは活躍させてないことが多い
## にちじとか●とか(月)とかの記号系ばかりかも
# ☆ejectみたいな効果がないキーをhold_down_millisecondsで40とか120とか押すと、スリープ的に働いて、IMEの切り替えをしやすそう
# ポイント・日本語入力のさせ方
## 親指シフトキーがいる文字は、普通に文字キーの前にjapanese_eisuuとかjapanese_kanaを入力すればOK
## 変換前には eject を hold_down_millisecondsで 120とかやって、最後の文字キーが入力されてから変換するようにしてる
### 変換にもすこし時間がいるので、同じようにeject hold_down_millesecondsで待ってからやる
{
"conditions": [
{
"input_sources": [
{
"language": "ja"
}
],
"type": "input_source_if"
}
],
"description": "最近",
"from": {
"simultaneous": [
{
"key_code": "semicolon"
},
{
"key_code": "a"
}
]
},
"to": [
{
"key_code": "semicolon"
},
{
"key_code": "japanese_kana"
},
{
"hold_down_milliseconds": 0,
"key_code": "eject"
},
{
"key_code": "k"
},
{
"hold_down_milliseconds": 0,
"key_code": "eject"
},
{
"key_code": "a"
},
{
"hold_down_milliseconds": 0,
"key_code": "eject"
},
{
"key_code": "j"
},
{
"hold_down_milliseconds": 80,
"key_code": "eject"
},
{
"hold_down_milliseconds": 140,
"key_code": "eject"
},
{
"key_code": "spacebar"
},
{
"hold_down_milliseconds": 80,
"key_code": "eject"
},
{
"key_code": "return_or_enter"
}
],
"type": "basic"
},
- ●親指シフト安定(日本語) 2024/07/20 0:29
●親指シフト安定(日本語) 2024/07/20 0:29
# 安定して入力できないときに使える
## というか、ほぼ全ての親指シフトで入力する文字にいれてる。
{
"conditions": [
{
"input_sources": [
{
"language": "ja"
}
],
"type": "input_source_if"
}
],
"from": {
"simultaneous": [
{
"key_code": "x"
},
{
"key_code": "japanese_kana"
}
]
},
"to": [
{
"key_code": "x"
},
{
"key_code": "japanese_kana"
}
],
"type": "basic"
},
●cmd + X を ctrl + X に 2024/07/20 0:30
# 左小指外に慣れてる人向け
## ↑に書いたとおり、ちゃんとcmdが英数の左隣にあればしなくていいと思う
{
"description": "アンドゥ",
"from": {
"key_code": "z",
"modifiers": {
"mandatory": [
"left_control"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "z",
"modifiers": [
"command"
]
}
],
"type": "basic"
},
●☆☆☆英語短縮入力 2024/07/20 0:36
# 英文用単語というよりも、コマンド丸ごと設定することが多い
# japanese_eisuu とか japanese_kana とかもワンストローク(2つ同時押しで打てる) 楽ちん
## 英語はIMEを使わないので、とてもKarabinerが活躍する
{
"conditions": [
{
"input_sources": [
{
"language": "en"
}
],
"type": "input_source_if"
}
],
"description": "ing",
"from": {
"simultaneous": [
{
"key_code": "j"
},
{
"key_code": "i"
}
]
},
"to": [
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
},
{
"key_code": ""
}
],
"type": "basic"
},
●control絡み3つ押し 2024/08/03 20:33
# これまた、例がいまいち(なぜなら、私はスペースキーをjapanese_kanaにしてるので、左親指で1つ右を打つだけでjapanese_kanaを入力できるから)
# しかし、control(左小指外)絡みの3つ同時押しはとても多い
## なので、from 部分は参考になると思う
## 左手だけで入力したいものが多いから
# japanese_eisuuと左ctrl(左小指外)の同時押しはとても多いですね。もう枯渇しました
{
"conditions": [
{
"input_sources": [
{
"language": "en"
}
],
"type": "input_source_if"
}
],
"description": "左手だけで押せるjapanese_kana。ーだけ入力したの時とかに使う",
"from": {
"simultaneous": [
{
"key_code": "w"
},
{
"key_code": "japanese_eisuu"
},
{
"key_code": "left_control"
}
]
},
"to": [
{
"key_code": "japanese_kana"
}
],
"type": "basic"
},
(例2: modifiers利用)
{
"description": "スクショ",
"from": {
"simultaneous": [
{
"key_code": "4"
},
{
"key_code": "japanese_eisuu"
},
{
"key_code": "left_control"
}
]
},
"to": [
{
"key_code": "4",
"modifiers": [
"command",
"shift"
]
}
],
"type": "basic"
},
●親指シフトを矢印キーに 2024/07/20 0:31
# 矢印キーも入力できるよ、という例
{
"conditions": [
{
"input_sources": [
{
"language": "en"
}
],
"type": "input_source_if"
}
],
"from": {
"simultaneous": [
{
"key_code": "comma"
},
{
"key_code": "japanese_kana"
}
]
},
"to": [
{
"key_code": "left_arrow",
"modifiers": [
"left_command"
]
}
],
"type": "basic"
},
●記号設定 2024/07/20 0:32
# 多分、Lacailleでは英数モードのキーバインドを設定できないので、英数モードでの親指シフトとか同時押しで記号を入力する例
## Windowsのやまぶき→benizaraでは、英数モードの配列も設定できて、記号や特殊キーも設定できた。
# ホムポからは届かない$などの記号や届かない位置にある数字(0とか1とか2とか、よく使うものばかりが指を伸ばさないといけない位置にありますよね) をホムポ付近に設定すると楽です
{
"description": "",
"conditions": [
{
"input_sources": [
{
"language": "en"
}
],
"type": "input_source_if"
}
],
"from": {
"simultaneous": [
{
"key_code": "f"
},
{
"key_code": "japanese_eisuu"
}
]
},
"to": [
{
"key_code": "4",
"modifiers": [
"right_shift"
]
}
],
"type": "basic"
},
●同時押しで機能キー. 2024/07/20 0:33
# tabや同じアプリケーションのウィンドウ切り替えなど片手で押したい機能キーは多い
{
"from": {
"simultaneous": [
{
"key_code": "l"
},
{
"key_code": "k"
}
]
},
"to": [
{
"key_code": "tab"
}
],
"type": "basic"
},
●逆親でローマ字の大文字入力 2024/07/20 0:34
# 定番のキー配列
## シフトキーは本当のホームポジション(運指距離0)ではないので、運指上有利なのだ
{
"conditions": [
{
"input_sources": [
{
"language": "en"
}
],
"type": "input_source_if"
}
],
"from": {
"simultaneous": [
{
"key_code": "m"
},
{
"key_code": "japanese_eisuu"
}
]
},
"to": [
{
"key_code": "m",
"modifiers": [
"right_shift"
]
}
],
"type": "basic"
},
●右クリックメニュー選択用 2024/08/13 0:49
# Windowsだと、右クリックメニューにもショートカットがあるが(最近はなくなりつつあるのかも?)、Macには無いのでその代わり
## 何度も同じ作業するときはないと辛いと思う
### 逆に、いうと、1ループを1~2アクションとかで行えるように入力効率化すると、コードとかでの効率化の優位性が薄れてきたり
{
"description": "リンクをコピー(七回したエンター)",
"from": {
"simultaneous": [
{
"key_code": "c"
},
{
"key_code": "japanese_eisuu"
},
{
"key_code": "left_control"
}
]
},
"to": [
{
"key_code": "down_arrow",
"modifiers": []
},
{
"key_code": "down_arrow"
},
{
"key_code": "down_arrow"
},
{
"key_code": "down_arrow"
},
{
"key_code": "down_arrow",
"modifiers": []
},
{
"key_code": "down_arrow"
},
{
"key_code": "down_arrow"
},
{
"key_code": "return_or_enter"
}
],
"type": "basic"
},
●日時
# 「にちじ」をGoogle日本語入力で変換すると現在日時を入力できる。それを、日本語モード、英数モードのいずれでも2つ同時押しで入力できるようにしてある
## 大変良く利用する
{
"description": "日時",
"from": {
"simultaneous": [
{
"key_code": "s"
},
{
"key_code": "e"
}
]
},
"to": [
{
"key_code": "japanese_eisuu"
},
{
"key_code": "japanese_eisuu"
},
{
"key_code": "spacebar"
},
{
"key_code": "japanese_kana"
},
{
"hold_down_milliseconds": 130,
"key_code": "eject"
},
{
"key_code": "e"
},
{
"key_code": "s"
},
{
"key_code": "japanese_eisuu"
},
{
"hold_down_milliseconds": 120,
"key_code": "eject"
},
{
"key_code": "c"
},
{
"hold_down_milliseconds": 120,
"key_code": "eject"
},
{
"key_code": "spacebar"
},
{
"key_code": "spacebar"
},
{
"key_code": "return_or_enter"
}
],
"type": "basic"
},
●時刻 2024/07/22 1:24
# 上記の時刻だけ版
{
"description": "時刻",
"from": {
"simultaneous": [
{
"key_code": "s"
},
{
"key_code": "c"
}
]
},
"to": [
{
"key_code": "japanese_eisuu"
},
{
"key_code": "japanese_eisuu"
},
{
"key_code": "japanese_kana"
},
{
"hold_down_milliseconds": 120,
"key_code": "eject"
},
{
"key_code": "c"
},
{
"key_code": "o"
},
{
"key_code": "japanese_kana"
},
{
"hold_down_milliseconds": 0,
"key_code": "eject"
},
{
"key_code": "j"
},
{
"key_code": "japanese_kana"
},
{
"hold_down_milliseconds": 120,
"key_code": "eject"
},
{
"key_code": "spacebar"
},
{
"key_code": "spacebar"
},
{
"key_code": "spacebar"
},
{
"key_code": "return_or_enter"
}
],
"type": "basic"
},
●mandatory 2024/08/24 3:58
# 入力の方のどのレイヤーかって指定。mandatoryは「必須」という意味。
## これも外付けキーボードのoptionとcmdを入れ替えてcmdを内側にしたら設定しなくてよかっただろう例
{
"description": "vscodeのファイル探しモード入り",
"from": {
"key_code": "p",
"modifiers": {
"mandatory": [
"left_control"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "p",
"modifiers": [
"command"
]
}
],
"type": "basic"
},
●複雑なもの 2024/08/25 1:24
# 便利そう(?)
{
"description": "コピーしてある内容(検索対象やURL)をブラウザのアドレスバーに貼ってエンター",
"from": {
"simultaneous": [
{
"key_code": "s"
},
{
"key_code": "left_control"
},
{
"key_code": "japanese_eisuu"
}
]
},
"to": [
{
"key_code": "l",
"modifiers": [
"command"
]
},
{
"hold_down_milliseconds": 50,
"key_code": "eject"
},
{
"key_code": "delete_or_backspace"
},
{
"hold_down_milliseconds": 30,
"key_code": "eject"
},
{
"key_code": "v",
"modifiers": [
"command"
]
},
{
"hold_down_milliseconds": 80,
"key_code": "eject"
},
{
"key_code": "return_or_enter"
}
],
"type": "basic"
},
# オススメ。日本語IMEの辞書登録よりはるかにストローク数が減らせるので
{
"description": "(月)",
"from": {
"simultaneous": [
{
"key_code": "japanese_eisuu"
},
{
"key_code": "left_control"
},
{
"key_code": "1"
}
]
},
"to": [
{
"key_code": "japanese_eisuu"
},
{
"key_code": "japanese_eisuu"
},
{
"hold_down_milliseconds": 100,
"key_code": "eject"
},
{
"key_code": "8",
"modifiers": [
"shift"
]
},
{
"hold_down_milliseconds": 80,
"key_code": "eject"
},
{
"key_code": "japanese_kana"
},
{
"hold_down_milliseconds": 100,
"key_code": "eject"
},
{
"key_code": "l"
},
{
"key_code": "japanese_kana"
},
{
"hold_down_milliseconds": 40,
"key_code": "eject"
},
{
"key_code": "a"
},
{
"hold_down_milliseconds": 180,
"key_code": "eject"
},
{
"hold_down_milliseconds": 140,
"key_code": "eject"
},
{
"key_code": "spacebar"
},
{
"hold_down_milliseconds": 80,
"key_code": "eject"
},
{
"hold_down_milliseconds": 80,
"key_code": "eject"
},
{
"key_code": "japanese_eisuu"
},
{
"key_code": "japanese_eisuu"
},
{
"hold_down_milliseconds": 50,
"key_code": "eject"
},
{
"key_code": "9",
"modifiers": [
"shift"
]
},
{
"hold_down_milliseconds": 50,
"key_code": "eject"
},
{
"hold_down_milliseconds": 0,
"key_code": "spacebar"
}
],
"type": "basic"
},
私のよく使うショトカの索引(主に操作系の入力)
| 動作1 |
動作2 |
入力1 |
入力2 |
入力3 |
モード |
備考 |
発行しているキーコード |
|
| 時刻 |
|
s |
c |
eisuu |
両 |
|
|
|
| 日時 |
|
s |
e |
|
両 |
|
|
|
| メモで行末に |
vi無効 |
eisuu |
c |
|
英数 |
|
left_command right_arrow |
|
| メモで行末に |
vi無効 |
kana |
left ctrl |
c |
両 |
|
left_command right_arrow |
|
| メモで行頭(ターミナルも) |
|
eisuu |
left ctrl |
slash |
両 |
|
|
|
| 下に行って行頭 |
|
w |
e |
eisuu |
|
|
|
|
| ターミナルで行末 |
|
ctrl |
e |
|
両 |
|
デフォルト |
|
| メモで表示文章先頭 |
vi行頭 |
eisuu |
q |
|
|
|
fn left_arrow |
|
| メモで表示文章先頭 |
vi行頭 |
eisuu |
left ctrl |
q |
両 |
|
fn left_arrow |
|
| Firefoxでページ末尾 |
|
eisuu |
left ctrl |
a |
両 |
|
cmd down_arrow |
|
| ターミナルで行末 |
vi表示1行下 |
ctrl |
e |
|
|
|
|
|
| |
vi行末 |
eisuu |
f |
|
|
|
$ |
|
| メモで表示文章最後 |
vi行末 |
eisuu |
kana |
c |
両 |
|
fn right_arrow |
|
| メモで表示文章最後 |
vi行末 |
a |
f |
|
両 |
|
fn right_arrow |
|
| スプシで入力モード |
|
kana |
i |
|
|
|
enter |
|
| bs5 |
|
kana |
8 |
|
両 |
|
|
|
| bs10 |
|
kana |
7 |
|
両 |
|
|
|
| bs20 |
|
kana |
6 |
|
両 |
|
|
|
| bs60 |
|
kana |
9 |
|
両 |
|
|
|
| カタカナ変換 |
|
eisuu |
ctrl |
k |
|
|
|
|
| |
vi入力補完 |
eisuu |
ctrl |
p |
両 |
|
ctrl p |
素のctrl pはvscodeのファイル探しモードのためのcmd pになってて。cmd pはviだとプリント |
| 全部のウィンドウを並べる |
|
F3 |
|
|
|
|
デフォルト |
|
| 右側の文字を消す |
|
ctrl |
d |
|
両 |
|
デフォルトかも? |
|
| |
|
ctrl |
eisuu |
d |
|
|
|
|
| 右側の文字を全部消す |
|
ctrl |
opt |
d |
|
|
|
|
| 単語削除 |
|
s |
v |
|
|
|
|
|
| 書式なしペースト |
|
ctrl |
eisuu |
v |
|
|
|
|
| ↑ |
|
カナ/かな |
ローマ字 |
|
|
|
|
外付けキーボードだけにある | |
| ↑ |
|
ctrl |
kana |
|
両 |
|
|
|
| ↓ |
|
ctrl |
j |
|
両 |
|
|
|
| ← |
|
ctrl |
space |
|
|
|
|
|
| ←7 |
|
a |
j |
|
両 |
|
|
|
| →7 |
|
f |
j |
|
|
|
|
|
| 全部選択して消す |
|
ctrl |
kana |
d |
|
|
|
|
| Ctrl-C |
|
c |
x |
|
両 |
|
|
|
| メモで右の文字消す |
|
ctrl |
d |
|
両 |
|
shift delete |
|
| メモでリドゥ |
|
shift |
ctrl |
z |
|
|
|
|
| リドゥ(スプシ、メモ) |
|
ctrl |
y |
|
|
|
|
|
| vi リドゥ |
|
ctrl |
eisuu |
u |
|
|
|
|
| firefox SPエミュ |
|
cmd |
option |
m |
両 |
|
デフォルト |
|
| 同アプリウィンドウ送り |
|
c |
a |
|
両 |
|
cmd @ |
|
| |
|
c |
s |
|
両 |
|
cmd @ |
小指では連打しにくい |
| スペース4個 |
|
eisuu |
space(kana) |
|
|
|
|
|
| スペース4個 ハイフン |
|
eisuu |
z |
d |
|
|
|
|
| リンクをコピー(Firefox) |
|
ctrl |
eisuu |
c |
両? |
|
|
|
まとめ
- 入力が複数キー同時押しで楽になると、いろいろと便利だね
----
参考文献
- Macのキーボード配列?ショートカット?についての識者のブログ
所要時間
- 設定とブログ書きに今のところ18時間 2024/11/15 1:08
- その後、さらなるキーバインド設定と日本語ワンストローク化とブログ書きで通算26時間だが、そろそろブログを出せそう 2025/02/21 2:04
おまけ(LFとCRのこと)
Ctrl+J(0x4A)→ LF(0x0A)改行(ラインフィード)
Ctrl+M(0x4D)→ CR(0x0D) 改行(キャリッジリターン)
ラインフィードとキャリッジリターンの違いは?
w
ラインフィード(LF)とキャリッジリターン(CR)の主な違いは以下の通りです:
## 意味と動作
- **ラインフィード (LF)**:
- カーソルを次の行に移動させる[1][3]
- 下方向への移動を表す (↓)[4]
- **キャリッジリターン (CR)**:
- カーソルを現在の行の先頭に移動させる[1][2]
- 左方向への移動を表す (←)[4]
## 由来
両者ともタイプライターの動作に由来しています[1][2]:
- LF: 紙を1行分送る動作
- CR: キャリッジ(用紙を保持する部分)を行の先頭に戻す動作
## コード表現
- LF: `\n`
- CR: `\r`[4]
## 使用されるOS
- LF: Unix系OS、MacOS X以降
- CR: MacOS 9以前
- CR+LF (CRLF): Windows[4][5]
## 現代のコンピューティング
現代のコンピュータやディスプレイ装置では、改行と行頭復帰は一体的な動作となっていますが、システムによって標準の改行コードが異なります[6]。多くのテキストエディタは、これらの違いに対応できるようになっています[5][6]。
ラインフィードとキャリッジリターンの違いを理解することは、異なるシステム間でのテキストファイルの互換性や、プログラミングにおける改行の扱いを考える上で重要です[3][8]。
Citations:
[1] https://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89
[2] https://it-note.stylemap.co.jp/programs/carriage-return-cr%E2%86%92-meaning-and-usage/
[3] https://it-note.stylemap.co.jp/programs/lf%E2%86%92-the-ultimate-guide-to-linefeed-character/
[4] https://cprogram.net/line-feed-code/
[5] https://wakaru-web.com/device/line-feed-code/
[6] https://e-words.jp/w/%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89.html
[7] https://jill-tone.com/cr-lf-crlf-difference/
[8] https://it-note.stylemap.co.jp/programs/comprehensive-guide-to-line-feed-lf%E2%86%92-from-basics-to-applications/
[9] https://www.weblio.jp/content/%E3%82%AD%E3%83%A3%E3%83%AA%E3%83%83%E3%82%B8%E3%83%AA%E3%82%BF%E3%83%BC%E3%83%B3
ー
はい、ラインフィード(LF)またはキャリッジリターン(CR)のどちらか一方だけでも、多くの現代のシステムでは改行として機能します。ただし、システムによって標準的な扱いが異なります。
## システムごとの標準的な改行コード
- **Unix系OS/macOS**: LFのみを使用[1][4]
- **Windows**: CR+LF (CRLF)の組み合わせを使用[1][4]
- **旧Mac OS (9以前)**: CRのみを使用[1][5]
## 現代のシステムでの対応
現代のコンピュータやディスプレイ装置では、改行と行頭復帰は一体的な動作となっています[4]。多くのテキストエディタやアプリケーションは、CR、LF、CRLFのいずれの改行コードにも対応できるようになっています[1][4]。
## 歴史的背景
この違いは、タイプライターの時代に由来します:
- **CR (Carriage Return)**: カーソルを行の先頭に戻す動作
- **LF (Line Feed)**: 紙を1行分送る動作
かつては、改行するためにCRとLFの両方が必要でした[2][4]。
## プログラミングでの注意点
異なるシステム間でテキストファイルを扱う際には、改行コードの違いに注意が必要です[1][5]。多くのプログラミング言語では、改行を表すエスケープシーケンス(例:`\n`)を提供しており、これらは環境に応じて適切な改行コードに変換されます[1]。
結論として、現代のシステムでは一般的にLFまたはCRのどちらか一方でも改行として認識されますが、システムの互換性を考慮する場合は、対象となるプラットフォームの標準的な改行コードを使用することが推奨されます。
Citations:
[1] https://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89
[2] https://blog.tokor.org/2015/12/02/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%AD%B4%E5%8F%B2%E7%9A%84%E8%83%8C%E6%99%AF/
[3] http://www.sysconet.jp/myfaq/faq/q029.html
[4] https://e-words.jp/w/%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89.html
[5] https://jill-tone.com/cr-lf-crlf-difference/
[6] https://it-note.stylemap.co.jp/programs/comprehensive-guide-to-line-feed-lf%E2%86%92-from-basics-to-applications/
[7] https://it-note.stylemap.co.jp/programs/lf%E2%86%92-the-ultimate-guide-to-linefeed-character/
ー
改行のエスケープシーケンス "\n" の由来については、以下のような背景があります:
1. 起源は1960年代後半から1970年代初頭のBプログラミング言語に遡ると考えられています[1]。BはBCPLを簡略化した言語で、Bell研究所で開発されました。
2. Bの後継言語であるC言語に引き継がれ、広く普及しました[1]。
3. "n" は "newline" (改行)の頭文字を表しています。これにより、意味が直感的に理解しやすくなっています。
4. バックスラッシュ "\" は、エスケープ文字として使用されました。これにより、通常の文字列内で特殊な意味を持つ文字を表現できるようになりました[1][5]。
5. この表記法は、C言語やUNIXを通じて広く普及し、多くの後続の言語に影響を与えました[1]。
6. エスケープシーケンスの概念自体は、19世紀のBaudotコードにまで遡ることができます。Baudotコードでは、大文字への切り替えなどにエスケープ文字が使用されていました[1]。
このように、"\n" は歴史的な経緯と実用性の両面から広く採用され、現代のプログラミング言語でも一般的に使用されているエスケープシーケンスとなっています。
Citations:
[1] https://stackoverflow.com/questions/48058082/what-is-the-difference-between-and-n-escape-sequence-in-python
[2] https://www.geeksforgeeks.org/escape-from-n-newline-character-in-python/
[3] https://www.devx.com/terms/escape-sequence/
[4] https://startup-house.com/glossary/escape-sequence
[5] https://en.wikipedia.org/wiki/Escape_sequences_in_C
[6] https://en.wikipedia.org/wiki/Escape_sequence
[7] https://stackoverflow.com/questions/1675643/where-did-string-escape-codes-n-t-originate
ー
キャリッジリターン(CR)とラインフィード(LF)を使い分けるケースは確かにあります。主な使い分けの例としては:
1. 異なるOSへの対応:
- Windows系では通常CRLF(\r\n)を使用
- Unix/Linux系ではLF(\n)のみを使用
- 古いMac OSではCR(\r)のみを使用
2. 特殊な出力デバイスへの対応:
- プリンタなど一部のデバイスでは、CRとLFを別々に送信して印字位置を制御する場合がある
3. プロトコルやフォーマットの要件:
- 一部のネットワークプロトコルやファイルフォーマットでは、CRとLFを明確に区別して使用することが求められる
4. テキスト処理:
- テキスト解析や加工を行う際に、CRとLFを別々に扱うことで柔軟な処理が可能になる場合がある
5. 互換性の維持:
- 古いシステムとの互換性を保つために、特定の改行コードを使用する必要がある場合
6. パフォーマンス最適化:
- 大量のテキストデータを扱う場合、改行コードの選択がファイルサイズやパフォーマンスに影響を与えることがある
ただし、現代のほとんどのソフトウェアやシステムは、CRとLFの違いを自動的に処理できるようになっています。そのため、一般的な用途では改行コードを意識して使い分ける必要性は低くなっています。
Citations:
[1] https://wakaru-web.com/device/line-feed-code/
[2] https://it-note.stylemap.co.jp/programs/carriage-return-cr%E2%86%92-meaning-and-usage/
[3] http://www.sysconet.jp/myfaq/faq/q029.html
[4] https://e-words.jp/w/%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89.html
[5] https://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89
[6] https://cprogram.net/line-feed-code/
[7] https://it-note.stylemap.co.jp/programs/lf%E2%86%92-the-ultimate-guide-to-linefeed-character/
[8] https://jill-tone.com/cr-lf-crlf-difference/
[9] https://xexeq.jp/blogs/media/it-glossary256
[10] https://it-note.stylemap.co.jp/programs/comprehensive-guide-to-line-feed-lf%E2%86%92-from-basics-to-applications/
ー