blog.manj.ioblog.manj.ioごく稀に更新2018-12-21SEの生産性を改善するためのSKK入門programingこの記事は武蔵野アドベントカレンダーの21日目の記事です。Engineer)にとって、コーディングやドキュメンテーションはもはや呼吸と等しい日常作業といっても過言ではない。両方ともキーボードを打つことで何かを生産する作業である。キーボードを使って文字を打つ速度と正確性は生産性に直結している。こと日本のSEは「キーボードを打って何かを生産すること」について欧米のSEに大きなハンデを負っている。それは、英字と和字を打ち分けるためにIMEという余計なレイヤを1つ挟んでいることだ。半角/全角キーだとか、変換/無変換キーだとか、そういうガラパゴスなキーを使用することを前提に設計されたIMEの存在により、我々はモード切り替えの度にホームポジションから指を離し、さらには記号を入力するたびにキーを叩いてモードを切り替えることを強いられている。効率的な日本語入力を志すならばコーディングには向かないJIS配列の使用を強制されることとなる。仕事の半分は英字を打ってるのに、たかが日本語を打つために無駄なキーが多く記号の配置に妥当性のないキーボードを使わざるを得ないストレスたるや。日本語中心のドキュメンテーションであれば話は別...と思われるだろうが、最近のSEはMarkdownなりreSTなりでドキュメントを書く機会が増えており(観測範囲)、#や+,*なんかの記号を半角入力するためになにかしらの変換手順を挟む必要があることから、ストレスに苛まれているのだ。ことドキュメントも全部英語で統一する、みたいなパワー解決ができれば苦労はしないが、そんなことをすると周囲から顰蹙を買う環境に身を置いているSEが大多数だろう。そんなあなたにSKK。SKKで日本語を打てばストレスの85%は解消される。program)とは、1987年に佐藤雅彦氏によって開発された日本語入力プログラムである。https://ja.wikipedia.org/wiki/SKK元々Emacs上で動作する日本語入力拡張として開発されたが、独特の操作感によってファンが増え、様々なプラットフォームに移植されている。矢印キーを一切使わない操作が可能という特徴を持っており、冒頭に書いたようなストレス要因を解消することが可能。さあ、今からSKKを使おう。この記事はあなたにSKKを使わせるために書いている。最後まで読んだら速攻使おう。上で紹介した特徴がどのようなインターフェースで実現されているのかを書いていく。モード切り替え他の日本語入力環境と同じく、SKKにも英字モードと和字モードがある。lと入力することによって切り替わる。C-jはとりあえず押しやすい。lも押しやすいし、日本語入力時には使わないキーだからModキーを省略するという思い切りがめっちゃクール。変換動作C-jで和字モードにしてなにか文字を入力してみると、一般的なIMEのように変換待ちに入ることなく、確定入力される。何も知らない人はひらがなしか打てないだろう。1変換を行なうには、変換したい単語の先頭の文字を大文字で入力し、単語の最後の文字を打ったあとにSpaceを押す必要がある。文字を打つたびに常について回るあのうざったい変換モードをマニュアルで起動することができるということ。逆に、「1文を最後まで打ったあとSpaceを押して一括変換する」ような使い方はSKKでは基本的にできない。SKKは形態素解析や係り受け解析などの機能を一切持っていない。どこを漢字で書くか、どこをひらがなのままにするかを把握し、単語単位で漢字に変換するような操作を求められる。難しく聞こえるかもしれないが、そもそも頭の中の文章をキーボードにぶつける段階でどこを漢字にしてどこをひらがなにするかは既に分かっているはず。やってみたらすぐ慣れる。変換候補は1キーで選ぶことができる。候補ページはSpaceで切り替わり、前の候補ページに戻る場合はxを押す。Enterでも確定できる製品が多いが、実装によっては確定+改行動作になるため注意。変換モード中にqを押すことで、変換中の単語をカタカナに変換することができる。製品によっては、C-qを押すことで半角カタカナへの変換も可能。#とか、一体どこの誰が全角文字として使うんだみたいな文字は大抵のSKK製品では半角で入力してくれる。変換モードに入らない限り確定入力されるので、Markdownで見出しをつけるときとか超便利。SandSSKKは変換モードに入るときに大文字入力をしなければいけない都合上、Shiftキーを多用する。律儀にShiftを入力していたら小指が折れてしまうので、SandSを併用することを勧める。Spaceの略で、「Spaceキーと文字キーの同時押しでShiftが入り、Spaceキー単体ではSpaceが入る」という機能である。modifierの一種。SKK製品にはこのSandS機能を搭載しているものもあるし、各OS毎に実現方法がちゃんと存在しているので、次の章ではOS別におすすめのSKK製品と共に実現方法を記していく。おすすめのSKK製品WindowsWindows環境であればSKK日本語入力FEPが鉄板。(踏み込みすぎなければ)設定が簡単という神実装。SandSもこれのみで有効化できる。頭から読んでみてほしい。MacAquaSKKを使おう。ダウンロードはこちらから。SandSを使いたい場合はKarabiner-Elementsを併用すること。Linuxibusやfcitxなど、色々な入力環境に対する拡張が公開されている。個人的にはibus-skkが好み。SandSはxkeysnailで実現することができる。設定方法については、ぽよめもさんの記事が分かりやすかった。おわりにSKKを使おう。US配列のキーボードを使おう。他の人が君のPCを触ると発狂したりキレ出す恐れがある。以前会社の先輩がオフライン環境で僕のPCに伝言を残していたのだが、日本語の変換の仕方が分からなかったのか全てひらがなでメモが書かれていたことがある。↩SKKの辞書サーバとしてGoogle日本語入力を用いる拡張が開発されているため、実現が不可能なわけではない。manji0.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。